ThinkPHP 模型 - 事务支持
Posted mingc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP 模型 - 事务支持相关的知识,希望对你有一定的参考价值。
使用事务之前,先确保数据库的存储引擎支持事务操作。
- MyISAM:不支持事务,主要用于读数据提高性能
- InnoDB:支持事务、行级锁和并发
- Berkeley DB:支持事务
<?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/index‘)); }
参考链接:tp3模型的事务支持:TP模型---事务支持
以上是关于ThinkPHP 模型 - 事务支持的主要内容,如果未能解决你的问题,请参考以下文章