重复条目的操作错误-MySQL和PHP


Manipulate error for duplicate entries - MySQL and PHP

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

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

我猜mysql_errnoheader();会是一条路,但我很难理解怎么走。

您不希望普通用户看到显示的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函数重定向用户,请确保在调用该函数之前页面上没有输出。

实际上有两个问题。

  1. 如何检查重复错误。

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

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

对于第二个,请遵循POST/Redirect/GET模式:不要将任何内容重定向到任何地方,只需包含表单并用输入的值填充它。

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

来识别您的记录