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执行速度全攻略(上)
Oct 09 PHP
php下检测字符串是否是utf8编码的代码
Jun 28 PHP
PHP抓取、分析国内视频网站的视频信息工具类
Apr 02 PHP
PHP使用CURL_MULTI实现多线程采集的例子
Jul 29 PHP
php获取发送给用户的header信息的方法
Mar 16 PHP
php实现encode64编码类实例
Mar 24 PHP
php生成curl命令行的方法
Dec 14 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
php 中奖概率算法实现代码
Jan 25 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 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创建多级目录代码
2008/06/05 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
原生js实现焦点轮播图效果
2017/01/12 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
python实现单向链表详解
2018/02/08 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
初婚未育未抱养证明
2014/01/12 职场文书
初中政治教学反思
2014/01/17 职场文书
《掌声》教学反思
2014/02/23 职场文书
决心书范文
2014/03/11 职场文书
美容院经理岗位职责
2014/04/03 职场文书
法制宣传月活动总结
2014/04/29 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
仲裁协议书
2014/09/26 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
奠基仪式致辞
2015/07/30 职场文书
合作意向书范本
2019/04/17 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP
mysql多表查询-笔记七
2021/04/05 MySQL
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
Python Pandas常用函数方法总结
2021/06/15 Python
python解析json数据
2022/04/29 Python