我希望避免在数据库中插入重复条目时显示错误。
我添加了这个“@”,但始终显示错误:
$result = @mysql_query($query) or die("Query failed insert. Mysql error: ".mysql_error() );
输出:
Query failed insert. Mysql error: Duplicate entry for key 'url'
如何在插入重复条目时避免显示错误?
答案 0 :(得分:12)
添加此“@”是开发人员可以做的最愚蠢的事情。 您将错误消息与错误本身混淆。您必须修复错误,而不是消息。
要解决此问题,您必须在查询中使用IGNORE
关键字
INSERT IGNORE INTO ...
相当具有讽刺意味的是,您实际上应该删除die()
语句,但只能用更可靠和安全trigger_error()
的方式替换它,因此,代码应为
$result = mysql_query($query) or trigger_error(mysql_error()." in ".$query);
答案 1 :(得分:5)
嗯,和其他答案一样,您可以在之后删除die
条款,但这对您手头的问题是错误的解决方法!。
您需要解决问题,导致您有多个条目,而不是在地毯下扫描错误并希望获得最佳效果!