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制作的意见反馈表源码
Mar 11 PHP
PHP生成月历代码
Jun 14 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 PHP
php的hash算法介绍
Feb 13 PHP
php判断是否为json格式的方法
Mar 04 PHP
php中instanceof 与 is_a()区别分析
Mar 03 PHP
PHP 验证登陆类分享
Mar 13 PHP
PHP加密解密实例分析
Dec 25 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 PHP
PHP实现单条sql执行多个数据的insert语句方法
Oct 11 PHP
laravel 查询数据库获取结果实现判断是否为空
Oct 24 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命名空间(namespace)的使用基础及示例
2014/08/18 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
Python3基于sax解析xml操作示例
2018/05/22 Python
python实现共轭梯度法
2019/07/03 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
Office DEPOT法国官网:欧迪办公用品采购
2018/01/03 全球购物
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
入党自我评价范文
2014/02/02 职场文书
导游个人求职信范文
2014/03/23 职场文书
村干部承诺书
2014/03/28 职场文书
2014年员工工作总结范文
2014/11/18 职场文书
信访工作个人总结
2015/03/03 职场文书
公司联欢会主持词
2015/07/04 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技