use think\Db;
Db::startTrans();
Db::commit();
Db::rollback();
// Thinkphp 3.2.3 多表事务
$Model = M();
$Model->startTrans();
$userRes = $Model->table('test_user')->add(['name'=>'admin']);
$keyRes = $Model->table('test_key')->add(['key'=>'test']);
$taskRes = $Model->table('test_task')->add(['task'=>'test']);
if (userRes && $keyRes && $taskRes)
$Model->commit();
else
$Model->rollback();
// ENGINE=MyISAM 会导致回滚失败
// 解决办法:
方法一:mysql>alter table `test_user` engine=innodb;
方法二:导出数据库,用编辑器打开导出的文件,找到需要使用事务的表将ENGINE=MyISAM 替换为 ENGINE=InnoDB 后重新导入即可