php - 将 CSV 文件导入 MySQL 数据库

标签 php mysql mysqldump mysql-error-1064

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

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

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

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

最佳答案

我用 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
}

然后我遍历数组并使用 mysql 插入:

foreach ($mydata as $value) 
{
     INSERT INTO $table (...) VALUES (....)
} 

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

关于php - 将 CSV 文件导入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11767238/

相关文章:

php - 字符集 mysql 数据库

javascript - jQuery 和 AJAX。 POST 只给出 NULL

php - 如何在 Laravel 中编写联合查询?

mysql - 如何合并两个用户表和关联的用户元表

mysql - View 未被 mysqldump 转储

php - javascript 未使用 ajax 执行

php - Android:如何从远程服务器获取图像

php - 带有隐私条件检查的查询中的 mysql 查询

mysqldump + auto_increment 导致主键错误

mysql - 导入 MySQL 转储文件时如何覆盖 ENGINE=INNODB 参数?