dpcj40970 2019-01-07 20:55
浏览 110
已采纳

PDO获取sql错误代码 - 必须是整数类型

How to get the error code from MYSQL via PDO as integer?

try{
    ...
}
catch(PDOException $e){
    throw new Fatal($e->getMessage(), $e->getCode());
}

$e->getCode() will return something like HY000

Argument 2 passed to Fatal::__construct() must be of the type integer, string given ...

... Fatal->__construct('SQLSTATE[HY000]...', 'HY000')

  • 写回答

1条回答 默认 最新

  • dpfwhb7470 2019-01-07 21:46
    关注

    Take a look at $e->errorInfo.

    http://php.net/manual/en/class.pdoexception.php says:

    errorInfo

    • Corresponds to PDO::errorInfo() or PDOStatement::errorInfo()

    http://php.net/manual/en/pdostatement.errorinfo.php documents the fields returned by errorInfo().

    Example:

    try {
            $stmt = $pdo->query("Bogus Query");
    } catch (PDOException $e) {
            echo "Caught exception!
    ";
            var_dump($e->errorInfo);
    }
    

    Output:

    Caught exception!
    array(3) {
      [0]=>
      string(5) "42000"
      [1]=>
      int(1064)
      [2]=>
      string(157) "You have an error in your SQL syntax; check the manual that corresponds to
          your MySQL server version for the right syntax to use near 'Bogus Query' at line 1"
    }
    

    You can see that the [1] element is an integer.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀