PHP Laravel 数据库事务

tajon · 2019-10-21 19:40:16

DB 门面提供两种方式支持数据库事务

一种是调用 transaction 方法然后传入闭包作为参数,我们将需要进行事务操作的逻辑放到闭包函数内,如果事务闭包中抛出异常,事务将会自动回滚。如果闭包执行成功,事务将会自动提交。使用 transaction 方法时不需要担心手动回滚或提交:

DB::transaction(function () {
        DB::table('users')->update(['id' => 1]);
        DB::table('posts')->delete();
    });

另一种是 beginTransaction、 rollBack 和 commit 三个方法一起使用从而构建一个完整的事务操作:

DB::beginTransaction(); //事务开始
    if($somethingIsFailed){
        DB::rollback(); //事务失败 操作回滚
        return false;
    }
    DB::commit();  //事务成功 提交操作

查看所有标签

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册