2012-01-04 65 views
0

我收到以下錯誤:PHP:重複的項目「XX」關鍵「YY」

Duplicate entry 'morandi-midnight-train' for key 'post_name' 

我要檢查,如果POST_NAME場已經與一個變量定義的行如果確實如此迴應一個錯誤。

我該如何做到這一點?

  • POST_NAME具有唯一索引
+2

它看起來像你已經做 – thetaiko 2012-01-04 14:24:09

+0

好...我想控制誤差 – m3tsys 2012-01-04 14:25:05

回答

3

運行SELECT 1 FROM table WHERE post_name = 'morandi-midnight-train' LIMIT 1;您的INSERT查詢之前。如果SELECT有任何結果,則顯示錯誤。

+0

謝謝你,我用這個 – m3tsys 2012-01-04 18:37:40

1

如果你想檢查行的存在,你可以做SELECT。

但這不是避免「重複密鑰」問題的最佳方法。也許在插入操作中使用ON DUPLICATE KEY UPDATE會更好。如果它不存在,將插入一個新行,或者如果存在,則靜默地更新現有行。如果你想忽略錯誤,運行INSERT IGNORE...和檢查受影響的行之後(通過mysql_affected_rows()http://dev.mysql.com/doc/refman/5.5/en/insert.html

-1

詳見MySQL手冊。

如果要更新已經插入的記錄,請運行INSERT INTO ... ON DUPLICATE KEY UPDATE查詢。

MySQL Manual