找回密码
 立即注册

QQ登录

只需一步,快速开始

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.                 }
复制代码



本教程由无限星辰工作室CRX349独家整理和提供,转载请注明地址,谢谢。本文地址:https://www.xmspace.net/thread-1002-1-1.html
无限星辰工作室  好集导航 Discuz全集下载  星辰站长网  集热爱361  一品文学  手机小游戏合集   海外空间网 星辰api  星辰支付二维码管理平台 阿里云服务器 腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626 服务项目 Q群315524225

发表于 2024-3-6 14:03:56 | 显示全部楼层 |阅读模式

回复 | 使用道具 举报

该帖共收到 0 条回复!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

美图秀

    • fastadmin 后台界面使用字段数组类型
    • Discuz!x3.5 修改标题高亮颜色
    • Discuz!x3.5 应用中心 下载应用一直下载中
    • 帖子定时显示
    • 论坛辅助审核
拖动客服框
Online Service
点击这里给我发消息
点击这里联系我们
微信扫一扫
在线客服
快速回复 返回顶部 返回列表