Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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 将CSV文件导入MySQL数据库_Php_Mysql_Mysqldump_Mysql Error 1064 - Fatal编程技术网

Php 将CSV文件导入MySQL数据库

Php 将CSV文件导入MySQL数据库,php,mysql,mysqldump,mysql-error-1064,Php,Mysql,Mysqldump,Mysql Error 1064,我已将记录导入.CSV文件,我想将它们导入MySQL数据库 每当我导入.CSV时,我都会收到消息导入已成功完成…但114条记录中只有79条被插入数据库 当我尝试导入包含411条记录的.CSV文件时,只插入了282条记录。获得411条记录的CSV文件包括两类记录活动记录和销售记录,其中114条记录处于活动状态 有人遇到过这种问题吗?如果是这样,应该怎么做?我用php编写了自己的csv导入程序。我使用php命令fgetcsv读取csv文件,然后在循环中使用mysql insert命令 $handle

我已将记录导入
.CSV
文件,我想将它们导入
MySQL
数据库

每当我导入
.CSV
时,我都会收到消息
导入已成功完成…
但114条记录中只有79条被插入数据库

当我尝试导入包含411条记录的
.CSV
文件时,只插入了282条记录。获得411条记录的CSV文件包括两类记录
活动记录和销售记录
,其中114条记录处于活动状态


有人遇到过这种问题吗?如果是这样,应该怎么做?

我用php编写了自己的csv导入程序。我使用php命令fgetcsv读取csv文件,然后在循环中使用mysql insert命令

$handle = fopen($this->file, "r"); $i=0; $delimiter = ($this->fieldDelimiter == 'TAB') ? chr(9) : $this->fieldDelimiter; while (($data = fgetcsv($handle, 10000, $delimiter)) !== FALSE) { $mydata[] = $data; } fclose ($handle); reset ($mydata); if ($this->CSVhasTitle) { $mydata = array_slice($mydata,1); //delete first row } $handle=fopen($this->file,“r”); $i=0; $delimiter=($this->fieldDelimiter=='TAB')?chr(9):$this->fieldDelimiter; while(($data=fgetcsv($handle,10000,$delimiter))!==FALSE) { $mydata[]=$data; } fclose($handle); 重置($mydata); 如果($this->CSVhasTitle) { $mydata=array_slice($mydata,1);//删除第一行 } 然后我在数组中循环并使用mysql insert:

foreach ($mydata as $value) { INSERT INTO $table (...) VALUES (....) } foreach($mydata作为$value) { 在$table(…)中插入值(…) }
但是我在循环之前将精确的列名添加到数组中。我有一个所有列名称的数组。

查看您的CSV文件。它很可能包含以下内容

1,2,"some data",1 2,5,"data,with,comma",2 1,2,“一些数据”,1 2,5,“数据,带逗号”,2 如果未指定可选地用“”(单双单)括起来的列,则第二行、第三列的字符串数据中嵌入的逗号将无法正确导入


检查CSV以查看正在使用的存储模块字符,并在phpmyadmin界面中指定该字符。

我也有这个问题。尽管它有点旧,而且这些建议朝一个方向发展,但这是我找到的解决方案。我正在创建一个大型数据库并导入,经过反复尝试后,我意识到了同样的情况密钥是以某种方式指定的(我不认识它,因为我使用的是新皮肤,而总是使用旧皮肤)。取出了不是我分配的钥匙,只留下了主钥匙和boom,吸收了数据上传。此外,现在查看有问题,请求超时。我将查看器显示屏向上推了数千次,现在卡住了,无法使用CP访问任何位置的配置文件。因此将挂起并托管cus我将不得不删除整个表,而不是任何一滴,因为我甚至无法运行SQL,因为它会因过载而冻结。因此,值得思考的是,让您的表视图保持低位,这就像我的案例b/c一样糟糕。我需要快速直观地查看17000个RCORD,以确保我的.csv是正确的然后,就好像问题可以在控件中发现它们并进行更正,这对我来说更有意义。

在“已售出”记录中是否存在格式错误?如引号外的逗号或其他什么?您是如何尝试导入的?我敢打赌这是territory>>Randy 411文件同时包含活动和已售出的记录以及out 411,它只插入282条,这就是为什么我决定只取出活动记录(114条记录),但它只插入79条..>>Mike Brant我使用的是phpmyadmin:Format:CSV使用加载数据列终止于:,列封闭于:列转义于:“行终止于:列名:[列名称]@user1133158:不,只是几行,但这是我的作品。它也应该与phpmyadmin一起工作。检查分隔符。分隔符是逗号,问题是插入的记录很少。114个中有79个,411个中有282个…我确实使用phpmyadmin,我选择数据库,然后选择要导入数据的表,然后单击导入选项卡..谢谢Chiyou,你能详细说明以下内容吗?我看不到文件位置的完整路径,你能告诉我它在哪里吗?在for循环中:应该像下面这样吗?插入$table(col1,col2,col3,…)值($value)我认为fopen路径是相对于脚本路径的,插入看起来不错。>>Greenlion:是的,我的CSV看起来是这样的。我只有2个空格,它不允许我添加最后一个“单引号”。在phpmyadmin中,只需输入“作为分隔符。如果手动运行,则在加载数据填充命令中使用'”。