tp5.1的事务操作
普通的事务操作很简单,最简单的方式是使用 transaction 方法操作数据库事务, 当闭包中的代码发生异常会自动回滚, 例如:
Db::transaction(function () { Db::table('think_user')->find(1); Db::table('think_user')->delete(1); });
也可以手动控制事务, 例如:
// 启动事务 Db::startTrans(); try { Db::table('think_user')->find(1); Db::table('think_user')->delete(1); // 提交事务 Db::commit(); } catch (\Exception $e) { // 回滚事务 Db::rollback(); }
分布式数据库(多个服务器的数据库之间的操作可以这样写)
Db::connect($config)->startTrans(); try{
Db::connect($config)->table('think_user')->find(1);
Db::connect($config)->table('think_user')->delete(1);
Db::connect($config)->commit();
}catch (\Exception $e){
Db::connect($config)->rollback();
$this->error();
}
//$config 就是数据库的配置数据