使用PHP导入到MySQL的CSV跳过重复项

时间:2012-04-20 10:09:04

标签: php mysql csv

我有一个PHP脚本,可以将csv导入MySQL数据库。使用这行代码

可以正常导入
$query = "insert into $databasetable values('$linemysql');";

唯一的问题是当我尝试导入另一个带有重复项的csv时脚本错误输出。如何调整此脚本以跳过重复项(如果存在)?

2 个答案:

答案 0 :(得分:4)

如果这会导致重复键,

INSERT IGNORE将不会插入行。但是,它也会忽略(并且不会生成错误)其他一些情况,例如尝试将NULL插入到NOT NULL约束的列中。

如果您只想忽略重复但仍然会遇到其他插入错误,请改用INSERT ... ON DUPLICATE KEY UPDATE。这将使用重复键更新行,但会带来一些性能成本。

答案 1 :(得分:2)

如果您使用的是mysql,请尝试:

$query = "insert ignore into $databasetable values('$linemysql');";