ThinkPHP5.0 模型类事务性操作

Posted fksdy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP5.0 模型类事务性操作相关的知识,希望对你有一定的参考价值。

 //创建一个模型类
    $release=new  appadminmodelRelease();
    $release->startTrans();//开启事务
    $release->rollback();//事务回滚
    $release->commit();//提交事务
————————————————

<?php
//例子如下:
public function transAction()
{
    $modelA = model(‘A‘);
    $modelA->startTrans();             // 开启事务A
    $result = $modelA->save($data1);
    if($result === false){
        $modelA->rollBack();        // 事务A回滚
        $this->error(‘添加失败‘);
    }
  
    $modelB = model(‘B‘);
    $modelB->startTrans();             // 开启事务B
    $result = $modelB->save($data2);
    if($result === false){
        $modelB->rollBack();        // 事务B回滚
        $modelA->rollBack();        // 事务A回滚
        $this->error(‘添加失败‘);
    }
  
    $modelC = model(‘C‘);
    $modelC->startTrans();             // 开启事务C
    $result = $modelC->save($data3);
    if($result === false){
        $modelC->rollBack();        // 事务C回滚
        $modelB->rollBack();        // 事务B回滚
        $modelA->rollBack();        // 事务A回滚
        $this->error(‘添加失败‘);
    }
  
    // 提交事务
    $modelC->commit();
    $modelB->commit();
    $modelA->commit();
  
    $this->success(‘添加成功‘, url(‘....‘));
}
————————————————

 

以上是关于ThinkPHP5.0 模型类事务性操作的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP5.0 模型调用

ThinkPHP5.0 模型查询操作

ThinkPHP5.0 模型更新操作

thinkphp5.0 多层MVC

thinkphp5.0.5怎么自定义命名上传文件

如何绕过将数据模型传递给片段参数以避免事务太大异常?