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.ini中文版(2)
Oct 09 PHP
PHP4中实现动态代理
Oct 09 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
PHP nl2br函数 将换行字符转成 <br>
Aug 21 PHP
php数组的一些常见操作汇总
Jul 17 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
May 06 PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
Oct 08 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
Jan 23 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中new static()与new self()的区别异同分析
2014/08/22 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
详解jQuery中的事件
2016/12/14 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
Python基础之函数用法实例详解
2014/09/10 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
scrapy爬虫完整实例
2018/01/25 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
十佳美德少年事迹材料
2014/02/05 职场文书
森林防火工作方案
2014/02/14 职场文书
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
工程质检员岗位职责
2015/04/08 职场文书
2015年测量员工作总结
2015/05/23 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
MySQL 如何限制一张表的记录数
2021/09/14 MySQL
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript