例如:
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction ROLLING BACK
我从代码中抛出的 PDOEception 中收到此消息。我想截取错误代码(1213
)并对其进行具体处理。
为什么?
例如死锁意味着我只需要在一微秒左右后重新提交查询。其他错误,意味着我需要提醒开发人员等)。
现在我必须编码(在继承的类中PDO
):
try{
$this->lastStatement = $sql;
$this->lastStatement->execute($params);
}catch (PDOException $e){
return $this->error($e);
}
我不能使用getCode
of,$E
因为它似乎没有 MySQL 的全部错误范围。例如,下面的错误:SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction
将返回HY000
这是一个非常通用的代码。用于许多不同的错误类型。
我应该解析错误消息吗?