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

Rob*_*ood 26 php mysql error-handling

我有一个PHP表单,它将数据输入我的MySQL数据库.我的主键是用户输入的值之一.当用户输入表中已存在的值时,将返回MySQL错误"密钥1的重复条目输入值".而不是那个错误,我想提醒用户他们需要输入不同的值.只是回应的消息或其他东西.我想我的问题归结为:如何将特定的MySQL错误转换为PHP消息谢谢

编辑:下面的nickf的答案很好,但有没有办法辨别具体的错误?

jen*_*ram 48

要检查此特定错误,您需要找到错误代码.这是1062重复键.然后使用结果errno()来比较:

mysql_query('INSERT INTO ...');
if (mysql_errno() == 1062) {
    print 'no way!';
}
Run Code Online (Sandbox Code Playgroud)

关于编程风格的注意事项
你应该总是设法避免使用魔术数字(我知道,我是在这个答案中引入它的人).相反,您可以将已知错误代码(1062)分配给常量(例如MYSQL_CODE_DUPLICATE_KEY).这将使您的代码更容易维护,因为if语句中的条件在几个月内仍然可读,而其含义1062已从内存中消失:)


nic*_*ckf 5

mysql_query您可以检查插入时的返回值。

$result = mysql_query("INSERT INTO mytable VALUES ('dupe')");

if (!$result) {
    echo "Enter a different value";
} else {
    echo "Save successful.";
}
Run Code Online (Sandbox Code Playgroud)