gpt4 book ai didi

php - 我的事务代码是否导致 lock_wait_timeout 错误?

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

因为在 codeigniter 中实现事务有两种可能的方式:

1.automatic

2.manual

我在 codeigniter 应用程序中收到类似 :Lock_wait_timeout 的错误。我的代码中没有任何错误的查询。但我发现我已经为类似于手动的自动事务编写了事务代码交易。

自动事务使用 trans_start() ,而手动事务使用 trans_begin() 。

对于手动事务,codeigniter 使用以下语法

$this->db->trans_begin();
insert query...
update query...

if($this->db->trans_status()===FALSE){

$this->db->trans_rollback();
}else{
$this->db->trans_commit();
}

但是我在代码中使用了自动事务,并且编写如下(使用像手动事务一样的 if else 语句):

 $this->db->trans_start();
insert query...
update query...
$this->db->trans_complete();
if($this->db->trans_status()===FALSE){

$this->db->trans_rollback();
}else{
$this->db->trans_commit();
}

最佳答案

函数 trans_complete() 的作用与 if/else 语句几乎完全相同,因为它调用 trans_rollback()trans_commit( )(视情况而定)。毫无疑问,您的第二次提交或回滚尝试会让您的数据库感到非常困惑。只需删除 if/else 即可,一切都会好的。

关于php - 我的事务代码是否导致 lock_wait_timeout 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39138905/

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