我已经在MySQL表中设置了多个列,其中一列充当唯一索引。此列对应于我的一个表单输入,以便我可以防止重复的行条目。
作为PHP新手,我的问题是:当调用MySQL重复条目错误时,操作它的最简洁方法是什么,以便我可以显示自定义消息或将用户返回到原始表单?
我猜测mysql_errno
和header();
是可行的方法,但我很难理解如何。
答案 0 :(得分:0)
实际上有两个问题。
如何检查重复错误。
如何向用户显示任何错误,而不仅仅是特定的错误。
首先,我宁愿使用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
函数重定向用户,请确保在调用函数之前页面上没有输出。