欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ThinkPHP5事务回滚

程序员文章站 2022-03-28 18:49:44
使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。 使用 transaction 方法操作数据库事务,当发生异常会自动回滚 1.手动控制事务 2.自动控制事务 ......

使用事务处理的话,需要数据库引擎支持事务处理。比如 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);
});