php - 如何获取MySQL错误参数?

标签 php mysql mysqli

如果出现 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/

相关文章:

PHP 将附加数据传递给回调

php - 两个 .htaccess 规则不能协同工作

mysql - Node js : check mysql connection before a query

php - 在下面的示例中将 mysql 转换为 mysqli

php exec() 不适用于 PredictionIO 部署

php - object foreach 循环只迭代偶数

javascript - 将搜索查询添加到 Google 可视化表

javascript - PHP 表单不向 MySQL 发送新数据

php - 从数据库中检索多个数据

PHP mysqli 返回错误的列