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 相关文章推荐
一个odbc连mssql分页的类
Oct 09 PHP
ThinkPHP自动验证失败的解决方法
Jun 09 PHP
PHP中round()函数对浮点数进行四舍五入的方法
Nov 19 PHP
php实现encode64编码类实例
Mar 24 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
thinkPHP中create方法与令牌验证实例浅析
Dec 08 PHP
php版微信公众账号第三方管理工具开发简明教程
Sep 23 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
yii框架数据库关联查询操作示例
Oct 14 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
推荐一款jQuery插件模板
2015/01/09 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
详解jquery和vue对比
2019/04/16 jQuery
小程序云函数调用API接口的方法
2019/05/17 Javascript
django允许外部访问的实例讲解
2018/05/14 Python
对pandas中to_dict的用法详解
2018/06/05 Python
Python代码太长换行的实现
2019/07/05 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Python创建临时文件和文件夹
2020/08/05 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
介绍一下gcc特性
2015/10/31 面试题
英文自我鉴定
2013/12/10 职场文书
光荣入党自我鉴定
2014/01/22 职场文书
销售经理工作职责
2014/02/03 职场文书
招股说明书范本
2014/05/06 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
Tomcat配置访问日志和线程数
2022/05/06 Servers