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 相关文章推荐
ubuntu 编译安装php 5.3.3+memcache的方法
Aug 05 PHP
php购物车实现代码
Oct 10 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
Jun 13 PHP
php获取文件大小的方法
Feb 26 PHP
destoon找回管理员密码的方法
Jun 21 PHP
php提交表单发送邮件的方法
Mar 20 PHP
php实现有趣的人品测试程序实例
Jun 08 PHP
简单谈谈favicon
Jun 10 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
Mar 17 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
DWZ+ThinkPHP开发时遇到的问题分析
Dec 12 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
Nov 22 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保存任意网络图片到服务器的方法
2015/04/14 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
学习ExtJS border布局
2009/10/08 Javascript
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
javascript prototype原型操作笔记
2009/12/07 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
python在windows下实现备份程序实例
2014/07/04 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
python五子棋游戏的设计与实现
2019/06/18 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
Python中求对数方法总结
2020/03/10 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
高一政治教学反思
2014/01/28 职场文书
销售员岗位职责
2015/02/10 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis