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不用内置函数对数组排序的两个算法代码
Feb 08 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
php实现memcache缓存示例讲解
Dec 04 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
PHP文件操作方法汇总
Jul 01 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
Dec 31 PHP
Symfony2框架学习笔记之表单用法详解
Mar 18 PHP
php 数组随机取值的简单实例
May 23 PHP
PHP简单遍历对象示例
Sep 28 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
PHP常用函数之格式化时间操作示例
Oct 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安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
类之Prototype.js学习
2007/06/13 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
JS实现文档加载完成后执行代码
2015/07/09 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
Python open读写文件实现脚本
2008/09/06 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
python获取本机所有IP地址的方法
2018/12/26 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
营销与策划应届生求职信
2013/11/04 职场文书
企业宗旨标语
2014/06/10 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
python用字节处理文件实例讲解
2021/04/13 Python
Python图像处理之图像拼接
2021/04/28 Python
css height属性中的calc方法详解
2021/06/03 HTML / CSS
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
js作用域及作用域链工作引擎
2022/07/07 Javascript