前言
Thinkphp5提供了一些简单的方法可以让我们快速实现事务操作,下面一起来看看。
transaction
当闭包里的代码发生异常,将会自动回滚。
但是这种方法并不适合让我们进行一些更加个性化的业务处理,所以这里只是简单提一下。
Db::transaction(function () {
Db::table('think_user')->find(1);
Db::table('think_user')->delete(1);
});
手动控制事务
步骤:
-
启动事务:
Db::startTrans()
-
提交事务:
Db::commit()
-
回滚事务:
Db::rollback()
实例:
// 启动事务
Db::startTrans();
try {
Db::table('think_user')->find(1);
Db::table('think_user')->delete(1);
// 提交事务
Db::commit();
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
}