处理重复条目的错误 - MySQL和PHP

时间:2012-01-07 00:17:35

标签: php mysql error-handling duplicates

我已经在MySQL表中设置了多个列,其中一列充当唯一索引。此列对应于我的一个表单输入,以便我可以防止重复的行条目。

作为PHP新手,我的问题是:当调用MySQL重复条目错误时,操作它的最简洁方法是什么,以便我可以显示自定义消息或将用户返回到原始表单?

我猜测mysql_errnoheader();是可行的方法,但我很难理解如何。

2 个答案:

答案 0 :(得分:0)

实际上有两个问题。

  1. 如何检查重复错误。

  2. 如何向用户显示任何错误,而不仅仅是特定的错误。

  3. 首先,我宁愿使用SELECT而不是INSERT。使用SELECT检查唯一性,然后引发错误。

    对于第二个,请按照POST / Redirect / GET模式进行操作:不要在任何地方重定向任何内容,只需包含表单并用输入的值填充它。

    最后,我希望您不会根据用户提供的唯一字段

    来识别您的记录

答案 1 :(得分:0)

您不希望普通用户看到显示的mysql_error,因此此处首选自定义消息。当您使用带有insert或update语句的mysql_query时,它将在成功时返回true,否则返回false。

你可以做这样的事情来解决它:

$query = "query goes here";
if(mysql_query($query)) {
    echo "Success!";
} else {
    echo "Data not submitted. Please try again.";
}

您当然可以对此进行修改,以便在成功或失败时将用户重定向到某处。如果要使用header函数重定向用户,请确保在调用函数之前页面上没有输出。