• ThinkPHP 3.2.2 事务


    手册里说得非常清楚 :
    5.3.19 事务支持
    ThinkPHP提供了单数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法:
    启动事务:
    PHP代码
    $User->startTrans()   
    提交事务:
    PHP代码
    $User->commit()   
    事务回滚:
    PHP代码
    $User->rollback()  
     
    事务是针对数据库本身的,所以可以跨模型操作的 。
    例如:
    PHP代码
    //  在User模型中启动事务   
    $User->startTrans()    
    // 进行相关的业务逻辑操作   
    $Info = M("Info"); // 实例化Info对象   
    $Info->save($User); // 保存用户信息   
    if (操作成功){   
    // 提交事务   
    $User->commit()    
    }else{   
    // 事务回滚   
    $User->rollback()    
    }
     1 <?php
     2 namespace SMSController;
     3 use ThinkController;
     4 class IndexController extends Controller {
     5     public function index(){
     6         $data['operator'] = 'Testss';
     7         M()->startTrans();
     8         $result = M('feehistory')->add($data);
     9         $result1 = $result2 = true;
    10         if(!empty($result)){
    11             $regdelData['level'] = '111';
    12             $result1 = M('regdel')->add($regdelData);
    13 
    14             $regData['level'] = '101';
    15             $result2 = M('reg')->where("registryCode='13693536752-SJB-HUAX-12345678'")->save($regData);
    16         }
    17         if(!empty($result) && !empty($result1) && !empty($result2) ){
    18             M()->commit();    
    19             //$this->success('事物提交',__ROOT__);
    20             echo '事物提交';
    21         }else{
    22             M()->rollback();
    23             //$this->error('事物回滚',__ROOT__);
    24             echo '事物回滚';
    25         }
    26     }
    27 }

    28 ?> 

  • 相关阅读:
    Oracle数据库链Database links
    记录中文字符的烦恼
    oracle游标应用难点 sys_refcursor 和 cursor(转)
    C# Delegate类
    Oracle_merge into 中 using 后的查询表如果有参数的情况
    C# partial
    Excel快捷键
    时间格式的问题
    Ref_cursor
    .Net 引用命名空间
  • 原文地址:https://www.cnblogs.com/yhdsir/p/4685237.html
Copyright © 2020-2023  润新知