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 删除数组元素
Jan 16 PHP
php的一些小问题
Jul 03 PHP
PHP下常用正则表达式整理
Oct 26 PHP
paypal即时到账php实现代码
Nov 28 PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
php实现仿写CodeIgniter的购物车类
Jul 29 PHP
thinkPHP中create方法与令牌验证实例浅析
Dec 08 PHP
一个简单的php MVC留言本实例代码(必看篇)
Sep 22 PHP
php文件包含的几种方式总结
Sep 19 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 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 高级课程笔记 面向对象
2009/06/21 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
Python语言的面相对象编程方式初步学习
2016/03/12 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
Python 复平面绘图实例
2019/11/21 Python
详解Python实现进度条的4种方式
2020/01/15 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
本科生个人求职自荐信
2013/09/26 职场文书
会计专业推荐信
2013/10/29 职场文书
消防安全员岗位职责
2014/03/10 职场文书
小学开学典礼主持词
2014/03/19 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS