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 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制