我正在转换一个PHP代码,它使用mysqli连接到mysql数据库,PHP代码使用PDO连接到mysql数据库。
是否有一个SQLSTATE相当于mysql中的错误码2006 ?
因为我的一段代码是这样写的:
switch($this->_dbi->errno){
case 2006:
$this->close();
throw new Exception();
break;
}
如何使用PDO重写此代码?
SQLSTATE是PDO::errorCode的返回值。
错误2006(CR_SERVER_GONE_ERROR)表示MySQL服务器已经离开
可以使用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;
}