2012-05-10 162 views
0

我有一個獨特的鍵爲mysql數據庫行設置,所以不要插入表單提交重複的條目。這工作正常,但如果有重複的條目頁面不加載。相反,用戶會收到警告:Duplicate entry ''' for key ''刪除重複條目'''的鍵''警告

如何解決該錯誤並加載頁面(即使存在重複鍵),同時仍使用行上的唯一鍵?我嘗試設置錯誤報告關閉,但沒有奏效。

mysql_query("INSERT INTO user 
(formemail,UserIP,Timestamp,LP) VALUES('$email','$userip',NOW(),'$lp') ") 
or die(mysql_error()); 
+2

您的錯誤生成查詢請 –

+1

正常情況下,請在查詢之前檢查記錄是否存在。如果有,請不要繼續。試圖執行查詢爲空或其他條件可能會導致錯誤。首先檢查,然後繼續 –

+0

更新的OP與查詢@AlexiosTsiaparas我認爲這是設置唯一鍵的目的,以避免必須這樣做?我不是在辯論,而是因爲我是新手而問。 – user1373779

回答

5

你需要改變你的SQL插入使用INSERT ... ON DUPLICATE KEY UPDATE Syntax,這樣擺在首位,不產生錯誤。

不要試圖隱藏症狀,對待問題。

此外,我必須指出,mysql library is being deprecated,不應該用於新的代碼,你應該至少使用mysqli或,最好是PDO。如果您有興趣學習,有一個很好的tutorial on PDO here

+0

謝謝!這工作' \t關於重複密鑰更新formemail = formemail;「) \t或die(mysql_error());' – user1373779

+0

這很好,但請開始使用PDO。 – vascowhite