我有一个PHP表单,可以将数据输入我的MySQL数据库。我的主键是用户输入的值之一。当用户输入表中已存在的值时,将返回MySQL错误“密钥1的重复条目输入值”。 而不是那个错误,我想提醒用户他们需要输入不同的值。只是回应的消息或其他东西。 我想我的问题归结为: 如何将特定的MySQL错误转换为PHP消息 感谢
编辑:下面的nickf答案很好,但有没有办法辨别具体的错误?
答案 0 :(得分:47)
要检查此特定错误,您需要找到error code。重复键为1062
。然后使用errno()
的结果与:
mysql_query('INSERT INTO ...');
if (mysql_errno() == 1062) {
print 'no way!';
}
关于编程风格的说明
你应该总是试图避免使用magic numbers(我知道,我是在这个答案中介绍它的人)。相反,您可以将已知错误代码(1062
)分配给常量(例如MYSQL_CODE_DUPLICATE_KEY
)。这将使您的代码更易于维护,因为if
语句中的条件在1062
的含义从内存中消失后的几个月内仍然可读:)
答案 1 :(得分:3)
执行插入时,可以检查mysql_query
的返回值。
$result = mysql_query("INSERT INTO mytable VALUES ('dupe')");
if (!$result) {
echo "Enter a different value";
} else {
echo "Save successful.";
}
答案 2 :(得分:2)
尝试此代码来处理重复的条目并显示echo消息:
pickerViewArray
答案 3 :(得分:1)
使用 mysql_error()功能 http://php.net/manual/en/function.mysql-error.php
答案 4 :(得分:0)
使用mysql_errno()
函数,它返回错误号。重复键的错误号是1062。
例如
$query = mysql_query("INSERT INTO table_name SET ...);
if (mysql_errno() == 1062){
echo 'Duplicate key';
}