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+iFrame实现页面无需刷新的异步文件上传
Sep 16 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
php通过baihui网API实现读取word文档并展示
Jun 22 PHP
WampServer搭建php环境时遇到的问题汇总
Jul 23 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
May 13 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
php根据地址获取百度地图经纬度的实例方法
Sep 03 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
PHP高并发和大流量解决方案整理
Mar 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编写的导航条程序
2006/10/09 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Python实现FTP弱口令扫描器的方法示例
2019/01/31 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
python实现指定ip端口扫描方式
2019/12/17 Python
Python标准库itertools的使用方法
2020/01/17 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
数控技术专科生自我评价
2014/01/08 职场文书
不假外出检讨书
2014/01/27 职场文书
运动会入场词200字
2014/02/15 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
团队精神的演讲稿
2014/05/14 职场文书
小学总务工作总结
2015/08/13 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
Python 语言实现六大查找算法
2021/06/30 Python
Python软件包安装的三种常见方法
2022/07/07 Python