vaeThink 事务操作时需要使用TP5的Db类,因此你需要在你的操作前use \think\Db; 此外,事务操作需要数据库引擎支持事务处理,比如MySQL的MyISAM引擎不支持事务处理,需要使用InnoDB引擎。
Db::transaction(function(){ Db::name('table')->find(1); Db::name('table')->delete(1); });
// 启动事务 Db::startTrans(); try{ Db::name('table')->find(1); Db::name('table')->delete(1); // 提交事务 Db::commit(); } catch (\Exception $e) { // 回滚事务 Db::rollback(); }
当事务操作中,程序抛出了异常,会进行数据回滚,适用于多数据表操作时。
vaeThink 想你所想。