普通的事务操作很简单,最简单的方式是使用 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 就是数据库的配置数据

 

 

 

相关文章:

  • 2021-11-30
  • 2021-10-31
  • 2021-06-16
  • 2022-02-26
  • 2022-02-12
  • 2021-06-15
  • 2021-05-21
猜你喜欢
  • 2022-12-23
  • 2021-11-15
  • 2022-02-13
  • 2022-12-23
  • 2021-12-15
  • 2021-09-24
  • 2021-07-21
相关资源
相似解决方案