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 分页类(模仿google)-面试题目解答
Sep 13 PHP
php 获取一个月第一天与最后一天的代码
May 16 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
CodeIgniter实现更改view文件夹路径的方法
Jul 04 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 PHP
php文件操作之小型留言本实例
Jun 20 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 PHP
php简单压缩css样式示例
Sep 22 PHP
全面解析PHP面向对象的三大特征
Jun 10 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 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+Ajax实现表单验证的详解
2013/06/25 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
JavaScript 命名空间 使用介绍
2013/08/29 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
2017/03/24 jQuery
JS严格模式知识点总结
2018/02/27 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
centos系统升级python 2.7.3
2014/07/03 Python
python插入排序算法实例分析
2015/07/03 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
解决python3运行selenium下HTMLTestRunner报错的问题
2018/12/27 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
会计实习生自我鉴定
2013/12/12 职场文书
文明学生事迹材料
2014/01/29 职场文书
银行开业庆典方案
2014/02/06 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
工作自我推荐信范文
2015/03/25 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
python turtle绘图
2022/05/04 Python
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB