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);
}
,因爲它似乎沒有錯誤的MySQL所具有的全部範圍,我不能使用的$E
的getCode
。例如,以下錯誤:SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction
將返回HY000
這是一個非常通用的代碼。用於許多不同的錯誤類型。
我應該解析錯誤信息嗎?
怎麼樣使用'$ e-> getCode()'?它是否會返回任何意義? –
查看下面的答案關於getCode() –