在PHP 中,當使用以下命令將一批記錄插入資料庫時一個獨特的字段,最好忽略重複的輸入錯誤。相反,您希望確保僅插入新記錄而不會出現任何中斷。
在插入之前執行 SELECT 查詢來檢查現有條目並不是一種有效的方法。以下是使用MySQL 內建功能的替代方法:
INSERT... IGNORE:
此語法允許您插入一條記錄並如果重複項已存在,請忽略它。不會引發任何錯誤。
INSERT IGNORE INTO tbl (field1, field2, ...) VALUES (...);
REPLACE INTO:
如果主鍵存在,此語法將使用新記錄覆寫現有記錄匹配。如果主鍵不唯一,則會引發錯誤。
REPLACE INTO tbl (field1, field2, ...) VALUES (...);
INSERT... ON DUPLICATE KEY UPDATE:
This語法插入新記錄或執行更新(如果重複主鍵)找到。
INSERT INTO tbl (field1, field2, ...) VALUES (...) ON DUPLICATE KEY UPDATE field2 = NEW.field2;
假設一個名為'tbl' 的表,其中包含'id' 和'value' 列,最初包含一條'id' =的記錄1 和“值”= 1:
替換為:
REPLACE INTO tbl (id, value) VALUES (1, 50);
結果:用 'value' = 50 覆寫現有記錄。
插入忽略:
INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);
結果:忽略重複條目,因為「id」1 已存在。
在重複鍵上插入...更新:
INSERT INTO tbl (id, value) VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;
結果:由於「id」1 已存在,因此將現有記錄更新為“value”= 200。
以上是如何在 PHP 中有效處理 MySQL 插入期間的重複條目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!