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下几种删除目录的方法总结
Aug 19 PHP
php动态生成JavaScript代码
Mar 09 PHP
Php Mssql操作简单封装支持存储过程
Dec 11 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
PHP循环函数使用介绍之PHP基础入门教程
Sep 21 PHP
php Calender(日历)代码分享
Jan 03 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
Laravel框架实现超简单的分页效果示例
Feb 08 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 PHP
Yii 框架使用数据库(databases)的方法示例
May 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
php中文件上传的安全问题
2006/10/09 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
php实现随机生成易于记忆的密码
2015/06/19 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
JS简单实现登陆验证附效果图
2013/11/19 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
python3实现mysql导出excel的方法
2019/07/31 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Python @property原理解析和用法实例
2020/02/11 Python
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
服务员岗位责任制
2014/02/11 职场文书
行政管理专业求职信
2014/07/06 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
个人汇报材料范文
2014/12/30 职场文书
地球一小时活动总结
2015/02/27 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers