dpcj40970 2019-01-07 12: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 13: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.

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

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部