ThinkPHP5事务回滚

使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。

使用 transaction 方法操作数据库事务,当发生异常会自动回滚

1.手动控制事务

// 启动事务
Db::startTrans();
try{
    $res = Db::table('user')->find(1);
    $rs = Db::table('user')->delete(1);
     
    if($res&&$rs){        
      // 提交事务
      Db::commit();    
    }
} catch (\Exception $e) {
    // 回滚事务
    Db::rollback();
}

2.自动控制事务

Db::transaction(function(){
   Db::table('user')->find(1);
   Db::table('user')->delete(1);
});

 

posted @ 2018-04-04 11:08  下页、再停留  阅读(656)  评论(0编辑  收藏  举报