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 就是数据库的配置数据

 

 

 

posted @ 2020-02-05 20:24  大尹  阅读(1762)  评论(0编辑  收藏  举报