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代码运行时间查看类代码分享
Aug 06 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 PHP
检查用户名是否已在mysql中存在的php写法
Jan 20 PHP
php实现下载限制速度示例分享
Feb 13 PHP
php获取字段名示例分享
Mar 03 PHP
PHP中数据库单例模式的实现代码分享
Aug 21 PHP
php获取随机数组列表的方法
Nov 13 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
Oct 13 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学习之数据类型之间的转换介绍
2011/06/09 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
php实现的支持断点续传的文件下载类
2014/09/23 PHP
基于jquery的多功能软键盘插件
2012/07/25 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
html向js方法传递参数具体实现
2013/08/08 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
用vue构建多页面应用的示例代码
2017/09/20 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
求职信内容考虑哪几点
2013/10/05 职场文书
数控技术应届生求职信
2013/11/13 职场文书
财务会计专业个人求职信范本
2014/01/08 职场文书
三八节主持词
2014/03/17 职场文书
小学生优秀评语大全
2014/04/22 职场文书
财务会计专业求职信
2014/06/09 职场文书
会计人员岗位职责
2015/02/03 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python
Python使用MapReduce进行简单的销售统计
2022/04/22 Python
JavaScript前端面试组合函数
2022/06/21 Javascript