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 相关文章推荐
Joomla下利用configuration.php存储简单数据
May 19 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
Jun 11 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
Codeigniter校验ip地址的方法
Mar 21 PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 PHP
Smarty foreach控制循环次数的一些方法
Jul 01 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
Aug 01 PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 PHP
图文详解PHP环境搭建教程
Jul 16 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 PHP
PHP sdk实现在线打包代码示例
Dec 09 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多用户读写文件冲突的解决办法
2013/11/06 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
python数据结构之二叉树的遍历实例
2014/04/29 Python
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
python实现给数组按片赋值的方法
2015/07/28 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
Series和DataFrame使用简单入门
2019/11/13 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
Python datetime模块的使用示例
2021/02/02 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
解释下面关于J2EE的名词
2013/11/15 面试题
企业文化宣传标语
2014/06/09 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
肖申克救赎观后感
2015/06/02 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书