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 相关文章推荐
第1次亲密接触PHP5(1)
Oct 09 PHP
如何对PHP程序中的常见漏洞进行攻击
Oct 09 PHP
adodb与adodb_lite之比较
Dec 31 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
将二维数组转为一维数组的2种方法
May 26 PHP
8个PHP数组面试题
Jun 23 PHP
PHP测试成功的邮件发送案例
Oct 26 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 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
PHP配置文件中最常用四个ini函数
2007/03/19 PHP
php自动加载机制的深入分析
2013/06/08 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
深入理解PHP内核(一)
2015/11/10 PHP
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
2017/03/10 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
Python中的XML库4Suite Server的介绍
2015/04/14 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
HTML5 canvas基本绘图之填充样式实现
2016/06/27 HTML / CSS
材料成型专业个人求职信范文
2013/09/25 职场文书
小学生期末自我鉴定
2014/01/19 职场文书
安全大检查反思材料
2014/01/31 职场文书
大学生活动策划方案
2014/02/10 职场文书
青蓝工程实施方案
2014/03/27 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
我的长征观后感
2015/06/09 职场文书
感谢师恩主题班会
2015/08/17 职场文书
《活见鬼》教学反思
2016/02/24 职场文书