如果出现 MySQL 错误,例如重复条目,我想获取导致问题的字段名称。我是这样做的:
$err = $mysqli->error;
$errno = $mysqli->errno;
...
if ($errno == 1062)
{
$begin = strpos($err, "' for key '") + 11;
$end = strlen($err) - 1;
$arg = substr($err, $begin, $end - $begin);
}
因此 $arg
存储名称。不过,这感觉并不是一种 super 可靠的方法,因为据我所知,不能保证错误的格式在不同版本和数据库之间保持相同。
是否有更直接的方法来获取该字段的名称?
最佳答案
您可以按如下方式执行嵌套 CASE 语句。结果将返回具有重复条目的字段。如果超过 1 个重复条目,它将对每个条目做出响应。
SELECT PD.column_name1, PD.column_name2, PD.column_name3 FROM table_name WHERE PD.column_name1 = value1, PD.column_name2 = value2, PD.column_name3 = value3 AS PD (SELECT CASE
WHEN PD.column_name1 = value1 THEN "column_name1"
WHEN PD.column_name2 = value2 THEN "column_name2"
WHEN PD.column_name3 = value3 THEN "column_name3")
关于php - 如何获取MySQL错误参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36799827/