找回密码
 立即注册

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://xmspace.net/thread-1002-1-1.html
无限星辰工作室  好集导航 Discuz全集下载  星辰站长网  集热爱361  一品文学  手机小游戏合集   海外空间网 星辰api  星辰支付二维码管理平台 LOT智能硬件聚合平台 阿里云服务器 腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626 服务项目 Q群315524225

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

回复 | 使用道具 举报

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

本版积分规则

美图秀

    • 跨平台桌面快捷启动工具MyLauncher
    • Discuz! 工具集(202607)
    • Discuz! 急诊箱 (Toolsx 5.0版)
    • 无限星辰工作室-承接从云到端,从代码到智
    • Discuz!x5 mysql5.6+低硬件配置安装解决方
拖动客服框
Online Service
点击这里给我发消息
点击这里联系我们
微信扫一扫
在线客服
快速回复 返回顶部 返回列表