将CSV文件导入MySQL数据库


Import CSV file into the MySQL database

我在.CSV文件中有记录,我想将它们导入MySQL数据库。

每当我导入.CSV时,我都会收到消息Import has been successfully finished...,但114条记录中只有79条被插入数据库。

当我尝试导入包含411条记录的.CSV文件时,只插入了282条。得到411条记录的CSV文件包括两类记录Active and Sold,其中114条记录是活动的。

有人遇到这种问题吗?如果是,该怎么办?

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

$handle=fopen($this->文件,"r");$i=0;$delimiter=($this->fieldDelimiter=='TAB')?chr(9):$this->fieldDelimiter;while(($data=fgetcsv($handle,10000,$delimiter))!==FALSE){$mydata[]=$data;}fclose($handle);重置($mydata);if($this->CSVhasTitle){$mydata=数组_切片($mydata,1)//删除第一行}

然后我循环遍历我的数组,并使用mysql-inter:

foreach($mydata作为$value){INSERT INTO$table(…)VALUES(…)}

但我在循环之前将精确的列名添加到数组中。我有一个所有列名称的数组。

我也遇到了这个问题。尽管它有点过时,而且这些建议都朝着一个方向发展,但我找到了解决方案。我创建了一个大型数据库并导入,发生了同样的事情,经过一次又一次的试用,我意识到一个密钥是以某种方式创建的(我没有认出它,因为我使用的是新皮肤,总是使用旧皮肤)。取出了不知怎么不是我分配的钥匙,只离开了小学,轰的一声,吸收了上传的数据。此外,现在视图有问题,请暂停处理您的问题。我把查看器的显示推高了数千个,现在被卡住了,无法用我的CP访问任何地方的配置文件。因此,由于挂起和托管客户支持,他们懒得阅读我的问题并在他们的终端覆盖它,我将不得不删除整个表,而不是任何DROP,因为我甚至无法运行SQL,因为它会因过载而冻结。因此,值得思考的是保持您的表格视图向下,这很糟糕,就像在我的情况下b/c一样。我需要快速查看17000个rcORD,以确保我的.csv是正确的,而不是像问题一样发挥作用,然后可以发现问题并在控制中进行纠正,这对我来说更有意义。

查看您的CSV文件。它很可能包含类似的东西

1,2,"一些数据",12,5,"数据,带,逗号",2

如果未指定COLUMNS OPTIONALLY ENCLOSED BY"(SINGLE_QUOTE DOUBLE_QUOTE SINGLE_QUETE),则嵌入第二行、第三列的字符串数据中的逗号将无法正确导入。

检查CSV以查看正在使用的封闭字符,并在phpmyadmin界面中指定该字符。