2006年从mysqli迁移到PDO的错误代码映射

时间:2016-10-17 07:59:17

标签: php mysqli pdo

我正在将使用mysqli连接到mysql数据库的PHP代码转换为使用PDO连接到mysql数据库的PHP代码。

是否有SQLSTATE等同于mysqli中的错误代码2006

因为我的代码是这样编写的:

switch($this->_dbi->errno){
    case 2006:
        $this->close();
        throw new Exception();
        break;
}

如何使用PDO重写此代码?

SQLSTATE PDO::errorCode的返回值。

错误2006(CR_SERVER_GONE_ERROR)表示 MySQL服务器已经消失

1 个答案:

答案 0 :(得分:1)

您可以使用PDO::errorInfo的数组。你得到一个如下数组:

Array
(
    [0] => HY000
    [1] => 1
    [2] => near "bogus": syntax error
)
  • 0:这与PDO::errorCode上的值相同。
  • 1:错误编号。数据库提供者之间有所不同,但这里将是您的错误号2006.
  • 2:错误消息/说明。

您的示例如下所示:

switch ($pdo->errorInfo()[1]) {
    case 2006:
        $this->close();
        throw new Exception();
        break;
}