thinkPHP事务操作简单案例分析


Posted in PHP onOctober 17, 2019

本文实例讲述了thinkPHP事务操作。分享给大家供大家参考,具体如下:

1.说明

Db::startTrans();
try{
  操作;
  对象->save();
  Db::commit();
}
catch (Exception $ex) {
  Db::rollback();
  throw $ex;
}

2.案例

private function createOrderByTrans($snap)
{
    Db::startTrans();
    try {
      $orderNo = $this->makeOrderNo();
      $order = new OrderModel();
      $order->user_id = $this->uid;
      $order->order_no = $orderNo;
      $order->total_price = $snap['orderPrice'];
      $order->total_count = $snap['totalCount'];
      $order->snap_img = $snap['snapImg'];
      $order->snap_name = $snap['snapName'];
      $order->snap_address = $snap['snapAddress'];
      $order->snap_items = json_encode($snap['pStatus']);
      $order->save();
      $orderID = $order->id;
      $create_time = $order->create_time;
      foreach ($this->oProducts as &$p) {
        $p['order_id'] = $orderID;
      }
      $orderProduct = new OrderProduct();
      $orderProduct->saveAll($this->oProducts);
      Db::commit();
      return [
        'order_no' => $orderNo,
        'order_id' => $orderID,
        'create_time' => $create_time
      ];
    } catch (Exception $ex) {
      Db::rollback();
      throw $ex;
    }
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中GET变量的使用
Oct 09 PHP
一个程序下载的管理程序(三)
Oct 09 PHP
PHP闭包(Closure)使用详解
May 02 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
php计算税后工资的方法
Jul 28 PHP
PHP json_encode() 函数详解及中文乱码问题
Nov 05 PHP
thinkphp微信开发(消息加密解密)
Dec 02 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
laravel框架模型、视图与控制器简单操作示例
Oct 10 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
PHP7 新增功能
Mar 09 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 #PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 #PHP
TP5框架请求响应参数实例分析
Oct 17 #PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 #PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
Oct 17 #PHP
使用laravel的Eloquent模型如何获取数据库的指定列
Oct 17 #PHP
解决laravel查询构造器中的别名问题
Oct 17 #PHP
You might like
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
PHP使用phpunit进行单元测试示例
2019/09/23 PHP
Javascript String.replace的妙用
2009/09/08 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
2015/10/12 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
Python将多个list合并为1个list的方法
2018/06/27 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
python能做哪方面的工作
2020/06/15 Python
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
PHP面试题及答案二
2015/05/23 面试题
大四学年自我鉴定
2013/11/13 职场文书
电信专业毕业生推荐信
2013/11/18 职场文书
小学三年级数学教学反思
2014/01/31 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
社区班子对照检查材料
2014/08/27 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
小学教育见习报告
2014/10/31 职场文书
综合素质评价自我评价
2015/03/06 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
Python实现抖音热搜定时爬取功能
2022/03/16 Python
青岛市的收音机研制与生产
2022/04/07 无线电