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 相关文章推荐
ueditor 1.2.6 使用方法说明
Jul 24 PHP
php绘图之加载外部图片的方法
Jan 24 PHP
cakephp打印sql语句的方法
Feb 13 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
twig里使用js变量的方法
Feb 05 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
PHP设计模式之工厂模式实例总结
Sep 01 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
Laravel 连接(Join)示例
Oct 16 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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 变量类型的强制转换
2009/10/23 PHP
PHP学习笔记之数组篇
2011/06/28 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
js实现打字小游戏
2019/12/17 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
浅析python内置模块collections
2019/11/15 Python
python logging添加filter教程
2019/12/24 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
给排水工程师岗位职责
2013/11/21 职场文书
网络技术专业求职信
2014/07/13 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
我的长征观后感
2015/06/09 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
基于python实现银行管理系统
2021/04/20 Python
Pyhton模块和包相关知识总结
2021/05/12 Python
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python
python playwright之元素定位示例详解
2022/07/23 Python
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS