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

 

原文地址:https://www.cnblogs.com/dayin1/p/12266379.html