无限星辰工作室-客户无限互联网动力之源

标题: Thinkphp5 事务和foreach连用注意事项 [打印本页]

作者: crx349    时间: 2024-3-6 14:03
标题: Thinkphp5 事务和foreach连用注意事项
Thinkphp5 中使用 事务和foreach时出现

  1. Db::startTrans();
  2.                 try{
  3.                     foreach ($item_arr as $val){
  4.                         

  5.                     }
  6.                     Db::commit();
  7.                     $this->success('ok',$ids);
  8.                 }catch (\Exception $e) {
  9.                     Db::rollback();
  10.                   
  11.                     $this->error('数据存储错误,请重试');
  12.                 }
复制代码

会出现抛出异常,但是实际上数据库已经事务处理完成了。
解决办法:
  1. Db::startTrans();
  2.                 try{
  3.                     foreach ($item_arr as $val){
  4.                         

  5.                     }
  6.                     Db::commit();
  7.                     $this->success('ok',$ids);
  8.                 }catch (\think\Exception\DbException $e) {
  9.                     Db::rollback();
  10.                   
  11.                     $this->error('数据存储错误,请重试');
  12.                 }
复制代码







欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://www.xmspace.net/) Powered by Discuz! X3.4