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查询MySQL大量数据的时候内存占用分析
Jul 22 PHP
PHP 之Section与Cookie使用总结
Sep 14 PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 PHP
ThinkPHP中的关联模型注意点
Jun 16 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
PHP模板解析类实例
Jul 09 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
php基于闭包实现函数的自调用(递归)实例分析
Nov 11 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
Oct 22 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
详解php中 === 的使用
2016/10/24 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
django最快程序开发流程详解
2019/07/19 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
python第三方库学习笔记
2020/02/07 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
绿色城市实施方案
2014/03/19 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
就业意向协议书
2015/01/29 职场文书
返乡农民工证明
2015/06/24 职场文书
八年级英语教学反思
2016/02/15 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
python必学知识之文件操作(建议收藏)
2021/05/30 Python
python scrapy简单模拟登录的代码分析
2021/07/21 Python