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中使用Oracle数据库(4)
Oct 09 PHP
我的论坛源代码(五)
Oct 09 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 PHP
PHP实现生成带背景的图形验证码功能
Oct 03 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
Dec 15 PHP
php数组指针操作详解
Feb 14 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
Laravel+Intervention实现上传图片功能示例
Jul 09 PHP
PHP+MySql实现一个简单的留言板
Jul 19 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
一个简单实现多条件查询的例子
2006/10/09 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
php实现删除指定目录下相关文件的方法
2014/10/20 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
基于Django与ajax之间的json传输方法
2018/05/29 Python
python调用java的jar包方法
2018/12/15 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
2014高考励志标语
2014/06/05 职场文书
安全保证书格式
2015/02/28 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
Mysql 设置boolean类型的操作
2021/06/04 MySQL
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python