【问题标题】:2006 error code mapping for migrating from mysqli to PDO从 mysqli 迁移到 PDO 的 2006 错误代码映射
【发布时间】:2016-10-17 07:59:16
【问题描述】:

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

有没有SQLSTATE相当于mysqli中的错误码2006

因为我的一段代码是这样写的:

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

如何使用 PDO 重写这段代码?

SQLSTATEPDO::errorCode的返回值。

Error 2006(CR_SERVER_GONE_ERROR) 意味着 MySQL 服务器已经消失

【问题讨论】:

  • 尝试PDO::errorInfo,元素#1 - “驱动程序特定错误代码”

标签: php mysqli pdo


【解决方案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;
}

【讨论】:

  • 感谢您的帮助 :-)
猜你喜欢
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
  • 2019-05-23
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多