2012-05-10 125 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