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)四
Oct 09 PHP
PHP IN_ARRAY 函数使用注意事项
Jul 24 PHP
将FCKeditor导入PHP+SMARTY的实现方法
Jan 15 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
php限制文件下载速度的代码
Oct 20 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 PHP
PHP使用PDO 连接与连接管理操作实例分析
Apr 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
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
javascript prototype,executing,context,closure
2008/12/24 Javascript
javascript web页面刷新的方法收集
2009/07/02 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
node.js连接mysql与基本用法示例
2019/01/05 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
python 实现文件的递归拷贝实现代码
2012/08/02 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
酒店副总经理岗位职责范本
2014/02/04 职场文书
大学毕业感言50字
2014/02/07 职场文书
公证书样本
2014/04/10 职场文书
大学生工作求职信
2014/06/23 职场文书
2014年督导工作总结
2014/11/19 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
nginx请求限制配置方法
2021/07/09 Servers