如何处理重复条目的错误?

2022-08-30 16:00:56

我有一个PHP表单,可以将数据输入我的MySQL数据库。我的主键是用户输入的值之一。当用户输入表中已存在的值时,将返回MySQL错误“为密钥1输入重复条目'输入值'”。而不是该错误,我想提醒用户他们需要输入不同的值。只是一个回声消息或其他东西。

如何将特定的MySQL错误转换为PHP消息?


答案 1

要检查此特定错误,您需要找到错误代码。它适用于重复密钥。然后使用 errno() 的结果与以下结果进行比较:1062

mysqli_query('INSERT INTO ...');
if (mysqli_errno() == 1062) {
    print 'no way!';
}

关于编程风格的
说明 你应该总是设法避免使用幻数(我知道,我是在这个答案中介绍它的人)。相反,您可以将已知错误代码 () 分配给常量(例如 )。这将使您的代码更易于维护,因为语句中的条件在几个月后仍然可读,因为当的含义已从内存中消失时,:)1062MYSQLI_CODE_DUPLICATE_KEYif1062


答案 2

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

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

if (!$result) {
    echo "Enter a different value";
} else {
    echo "Save successful.";
}

推荐