ThinkPHP 3.2.2实现事务操作的方法

 更新时间:2017年05月05日 08:50:37   作者:yhdsir  
这篇文章主要介绍了ThinkPHP 3.2.2实现事务操作的方法,简单分析了thinkPHP中事务的启动、提交、回滚等操作方法并给出了完整的事务提交与回滚操作实例,需要的朋友可以参考下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

相关文章

  • php导入模块文件分享

    php导入模块文件分享

    本文给大家分享的是php导入模块文件分享,主要参数有导入文件路径字符串,可以用"."代替"/", 导入文件类型的扩展名(带"."号),也可以是class/inc(简写方式), 如果导入成功则返回true,否则返回异常对象,有需要的小伙伴参考下吧。
    2015-03-03
  • 分享个简单易懂且非常有用的laravel事件

    分享个简单易懂且非常有用的laravel事件

    这篇文章主要给大家介绍了一个简单易懂并且非常有用的laravel事件,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • 服务器上配置PHP运行环境教程

    服务器上配置PHP运行环境教程

    这篇文章主要介绍了如何在服务器上配置PHP运行环境的方法及相关配置,十分全面,这里推荐给大家。
    2015-02-02
  • laradock环境docker-compose操作详解

    laradock环境docker-compose操作详解

    在本篇文章中小编给大家整理的是关于laradock环境docker-compose操作的相关知识点内容,有需要的朋友们参考学习下。
    2019-07-07
  • PHPMailer使用QQ邮箱实现邮件发送功能

    PHPMailer使用QQ邮箱实现邮件发送功能

    这篇文章主要介绍了PHPMailer使用QQ邮箱实现邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • PHP 将逗号、空格、回车分隔的字符串转换为数组的函数

    PHP 将逗号、空格、回车分隔的字符串转换为数组的函数

    我们在搜索一些东西时会经常遇到可以通过空格隔开来达到输入多个条件的目的。今天正好项目中遇到了这个情况,就写了一个函数,将多个条件放到数组里
    2012-06-06
  • 大家须知简单的php性能优化注意点

    大家须知简单的php性能优化注意点

    通过本文给大家介绍在什么情况下可能遇到性能问题,php性能问题的解决方向及优化点,对php性能优化注意点相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等

    Yii2使用$this->context获取当前的Module、Controller(控制器

    使用Yii2的时候,在某些场景和环境下需要获得Yii2目前所处于的module(模型)、Controller(控制器)、Action(方法),以及会调用控制器里面已经定义过的一些公共的方法等.对于这些问题Yii2可以在视图层View中使用$this->context这个对象去获得。下面通过示例代码给大家讲解下
    2017-03-03
  • PHP 枚举类型的管理与设计知识点总结

    PHP 枚举类型的管理与设计知识点总结

    在本篇文章里小编给大家整理的是关于PHP 枚举类型的管理与设计知识点总结,需要的朋友们可以学习参考下。
    2020-02-02
  • Laravel 解决composer相关操作提示php相关异常的问题

    Laravel 解决composer相关操作提示php相关异常的问题

    今天小编就为大家分享一篇Laravel 解决composer相关操作提示php相关异常的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10

最新评论