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 后重新导入即可