Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否可以使用“加载数据填充”将所有文件数据插入到一列中?_Php_Mysql_Large Files_Load Data Infile - Fatal编程技术网

Php 是否可以使用“加载数据填充”将所有文件数据插入到一列中?

Php 是否可以使用“加载数据填充”将所有文件数据插入到一列中?,php,mysql,large-files,load-data-infile,Php,Mysql,Large Files,Load Data Infile,我们将报告文件存储在mysql数据库表中。我们当前的实现如下所示: // File was generated and placed on the disk, now we're going // to store it in the database $file = file_get_contents($path); $report->csv_data = $file; $report->save(); // UPDATE reports SET csv_data = ... W

我们将报告文件存储在mysql数据库表中。我们当前的实现如下所示:

// File was generated and placed on the disk, now we're going
// to store it in the database
$file = file_get_contents($path);

$report->csv_data = $file;
$report->save(); // UPDATE reports SET csv_data = ... WHERE id = ?
好吧,这会导致内存不足错误,并产生更大、数百兆字节的报告。我尝试使用PDO::PARAM_LOB,但这不起作用,它会将整个文件加载到内存中

所以我尝试使用mysql的LoadDataInfle来插入文件,但它通常用于解析和批量导入数据我不想解析报表数据,我只需要将整个文件内容放在表中一行的一列中。这是我一直在修补的东西:

加载数据填充'/web/reportTest.csv'
进入表report.reports

以“您的数据库结构是什么”结尾的字段?如果您的csv是这样的:“bla,bla,blou,…,[+255 char],…”并且您的列是varchar(255),如果它不工作,则是正常的。注意:如果不希望所有csv都在一列和一行中,则需要以正确的字符结尾行。您可以共享您的.csv和结构表吗?我正在尝试将分隔符设置为结果集中永远不会出现的字符。您是否对一个“小”文件(例如,1-2兆字节)尝试过相同的设置?@Xenofexs这正是我要做的,将整个csv文件加载到一行中的一列中。csv数据和结构会有所不同,它们只是我们系统中不同的用户生成报告。csv_数据是一个长文本列。@Akina不,还没有。我刚刚用真实的报告做了一些测试?