gpt4 book ai didi

php - 如何捕获MySql错误码?

转载 作者:行者123 更新时间:2023-11-29 02:30:53 25 4
gpt4 key购买 nike

例如:

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);
}

我不能使用 $EgetCode,因为它似乎没有 MySQL 的所有错误范围。例如,以下错误: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded;尝试重新启动事务将返回 HY000 这是一个非常通用的代码。用于许多不同的错误类型。

我应该解析错误消息吗?

最佳答案

$e->getCode();

它包含 SQLSTATE 代码,其中 40001 表示“死锁”。

关于php - 如何捕获MySql错误码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13383380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com