2012-04-20 111 views
2

我有一個將csv導入到MySQL數據庫的PHP腳本。進口使用此行代碼使用PHP將CSV導入到MySQL跳過重複項

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

唯一的問題是,當我嘗試導入的CSV與重複的腳本錯誤進行正常工作。如何調整此腳本以跳過存在的重複項?

回答

4

INSERT IGNORE將不插入一行是否會導致重複鍵。但是,它也會忽略(並且不會產生錯誤)其他一些情況,比如嘗試將NULL插入到具有約束條件的列中。

如果您只是想忽略重複但仍然出現其他插入錯誤,請改爲使用INSERT ... ON DUPLICATE KEY UPDATE。這將使用重複密鑰來更新行,但會帶來一些性能成本。

+0

不知道那些關鍵字+1 :) – dmp 2012-04-20 10:28:10

+0

完美,謝謝! – 2012-04-20 10:36:34

2

如果你正在使用MySQL嘗試:

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