[笔记] 数据库事务

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();  //事务成功 提交操作
是非之外有一座花园,我们会在那里相遇
Martist
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!