如何避免在PHP中显示此错误?

时间:2012-04-24 12:45:14

标签: php mysql

我希望避免在数据库中插入重复条目时显示错误。

我添加了这个“@”,但始终显示错误:

$result = @mysql_query($query) or die("Query failed insert. Mysql error: ".mysql_error() );

输出:

Query failed insert. Mysql error: Duplicate entry for key 'url'

如何在插入重复条目时避免显示错误?

2 个答案:

答案 0 :(得分:12)

添加此“@”是开发人员可以做的最愚蠢的事情。 您将错误消息错误本身混淆。您必须修复错误,而不是消息。

要解决此问题,您必须在查询中使用IGNORE关键字

INSERT IGNORE INTO ...

相当具有讽刺意味的是,您实际上应该删除die()语句,但只能用更可靠和安全trigger_error()的方式替换它,因此,代码应为

$result = mysql_query($query) or trigger_error(mysql_error()." in ".$query);

答案 1 :(得分:5)

嗯,和其他答案一样,您可以在之后删除die条款,但这对您手头的问题是错误的解决方法!

您需要解决问题,导致您有多个条目,而不是在地毯下扫描错误并希望获得最佳效果!

不要忽视你的错误,修复它们!