ThinkPHP 3.2.2实现事务操作的方法


Posted in PHP onMay 05, 2017

本文实例讲述了ThinkPHP 3.2.2实现事务操作的方法。分享给大家供大家参考,具体如下:

手册里说得非常清楚 :

5.3.19 事务支持

ThinkPHP提供了单数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法:

启动事务:

$User->startTrans()

提交事务:

$User->commit()

事务回滚:

$User->rollback()

事务是针对数据库本身的,所以可以跨模型操作的 。

例如:

// 在User模型中启动事务
$User->startTrans()
// 进行相关的业务逻辑操作
$Info = M("Info"); // 实例化Info对象
$Info->save($User); // 保存用户信息
if (操作成功){
  // 提交事务
  $User->commit()
}else{
  // 事务回滚
  $User->rollback()
}

IndexController.class.php:

<?php
namespace SMS\Controller;
use Think\Controller;
class IndexController extends Controller {
  public function index(){
    $data['operator'] = 'Testss';
    M()->startTrans();
    $result = M('feehistory')->add($data);
    $result1 = $result2 = true;
    if(!empty($result)){
      $regdelData['level'] = '111';
      $result1 = M('regdel')->add($regdelData);
      $regData['level'] = '101';
      $result2 = M('reg')->where("registryCode='13693536752-SJB-HUAX-12345678'")->save($regData);
    }
    if(!empty($result) && !empty($result1) && !empty($result2) ){
      M()->commit();
      //$this->success('事物提交',__ROOT__);
      echo '事物提交';
    }else{
      M()->rollback();
      //$this->error('事物回滚',__ROOT__);
      echo '事物回滚';
    }
  }
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php 获取mysql数据库信息代码
Mar 12 PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
Aug 09 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
php获取Google机器人访问足迹的方法
Apr 15 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
PHP用户注册邮件激活账户的实现代码
May 31 PHP
Yii2使用表单上传文件的实例代码
Aug 03 PHP
php实现将数据做成json的格式给前端使用
Aug 21 PHP
PHP实现支持CURL字符串证书传输的方法
Mar 23 PHP
PHP获取学生成绩的方法
Nov 17 PHP
PHP实现Session入库/存入redis的方法
May 04 #PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
May 04 #PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 #PHP
PHP调用Mailgun发送邮件的方法
May 04 #PHP
PHP实现图片的等比缩放和Logo水印功能示例
May 04 #PHP
Yii2数据库操作常用方法小结
May 04 #PHP
Yii2中添加全局函数的方法分析
May 04 #PHP
You might like
对javascript和select部件的结合运用
2006/10/09 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
JavaScript实现左右下拉框动态增删示例
2017/03/09 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
Python中多线程及程序锁浅析
2015/01/21 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
Python 迭代器工具包【推荐】
2016/05/06 Python
python实现SMTP邮件发送功能
2020/06/16 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
python滑块验证码的破解实现
2019/11/10 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
如何撰写岗位职责
2014/02/01 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
毕业证代领委托书
2014/09/26 职场文书
典型事迹材料范文
2014/12/29 职场文书
道歉情书大全
2015/05/12 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
Python数据分析入门之数据读取与存储
2021/05/13 Python
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle