zoukankan      html  css  js  c++  java
  • ThinkPHP5 模型

    使用事务之前,先确保数据库的存储引擎支持事务操作。

    • MyISAM:不支持事务,主要用于读数据提高性能
    • InnoDB:支持事务、行级锁和并发
    • Berkeley DB:支持事务

    ThinkPHP5 使用事务有 3 个常用方法:

    $model->startTrans();   // 开启事务
    $model->rollback();	   // 事务回滚
    $model->commit();	   // 提交事务

    小例子:

    <?php
    /**
     * 事务测试
     */
    public function transaction()
    {
    	$modelA = model('A');
    	$modelA->startTrans();             // 开启事务A
    	$result = $modelA->save($data1);
    	if($result === false){
    		$modelA->rollBack();        // 事务A回滚
    		$this->error('添加A信息失败,请重试');
    	}
     
    	$modelB = model('B');
    	$modelB->startTrans();             // 开启事务B
    	$result = $modelB->save($data2);
    	if($result === false){
    		$modelB->rollBack();        // 事务B回滚
    		$modelA->rollBack();        // 事务A回滚
    		$this->error('添加B信息失败,请重试');
    	}
     
    	$modelC = model('C');
    	$modelC->startTrans();             // 开启事务C
    	$result = $modelC->save($data3);
    	if($result === false){
    		$modelC->rollBack();        // 事务C回滚
    		$modelB->rollBack();        // 事务B回滚
    		$modelA->rollBack();        // 事务A回滚
    		$this->error('添加C信息失败,请重试');
    	}
     
    	// 提交事务
    	$modelC->commit();
    	$modelB->commit();
    	$modelA->commit();
     
    	$this->success('添加成功', url('admin/index/add'));
    }
    

      

    参考链接:tp3模型的事务支持:TP模型---事务支持

  • 相关阅读:
    第一阶段SCRUM冲刺-06
    第一阶段SCRUM冲刺-05
    第一阶段SCRUM冲刺-04
    第一阶段SCRUM冲刺-03
    第一阶段SCRUM冲刺-02
    第一阶段SCRUM冲刺-01
    19年春第十周学习
    个人作业8-单词统计
    19年春第九周学习
    个人作业6-用户模板和用户场景
  • 原文地址:https://www.cnblogs.com/mingc/p/7496901.html
Copyright © 2011-2022 走看看