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 相关文章推荐
基于mysql的论坛(4)
Oct 09 PHP
php socket方式提交的post详解
Jul 19 PHP
PHP base64+gzinflate压缩编码和解码代码
Oct 03 PHP
PHP学习之数组值的操作
Apr 17 PHP
php设计模式 Prototype (原型模式)代码
Jun 26 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
php实现邮件发送并带有附件
Jan 24 PHP
yii2中添加验证码的实现方法
Jan 09 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
Oct 22 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 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
东方红 - 来复式再生机的修复
2021/03/02 无线电
php 缩略图实现函数代码
2011/06/23 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
python妹子图简单爬虫实例
2015/07/07 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
pytorch 预训练层的使用方法
2019/08/20 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
详解python statistics模块及函数用法
2019/10/27 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
增大python字体的方法步骤
2020/07/05 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
应届大专毕业生自我鉴定
2014/04/08 职场文书
《池塘边的叫声》教学反思
2014/04/12 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
2014年语文教研组工作总结
2014/12/06 职场文书
师德标兵事迹材料
2014/12/19 职场文书