我正在将使用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服务器已经消失
答案 0 :(得分:1)
您可以使用PDO::errorInfo
的数组。你得到一个如下数组:
Array
(
[0] => HY000
[1] => 1
[2] => near "bogus": syntax error
)
PDO::errorCode
上的值相同。 您的示例如下所示:
switch ($pdo->errorInfo()[1]) {
case 2006:
$this->close();
throw new Exception();
break;
}