• 【PHP】让新人快速理解ThinkPHP6中的事务操作


    事务操作对很多新人来说,可能有点陌生,即使看了ThinkPHP6官方手册中事务操作的部分,也仍然不知所解。

    下面就给大家介绍下事务操作

    一、先说说使用场景

    假设我需要给朋友转账1000元钱,正常的业务逻辑是:

    1、银行从我的账户中扣除1000元

    2、银行给朋友账户加上1000元。

    如果一切顺利,则转账成功!

    那么问题来了,如果我不小心把银行账户输错,导致银行查找不到我输入的银行账户,但是这个时候钱已经从我的账户扣除了,如何处理呢?

    我们生活中经常说“如果钱打不过去,银行会退回来的”,就是这个意思。

    二、事务操作定义

    那么通过上面的例子,我们理解下到底什么是事务操作,事务指的是逻辑上的一组操作,组成这组操作的各个单元要么全都成功,要么全都失败。

    就如上面的打钱例子,要么打钱成功,如果不成功,需要把我的钱退回来,也就是返回到初始状态,也叫做“回滚”。

    三、ThinkPHP6中的事务操作

    我们理解了事务操作的使用场景,那么在ThinkPHP6中如何使用呢?

    Db::transaction(function () {
    
        Db::table('think_user')->insert(['name'=>'aaa']);
    
        Db::table('think_user')->delete(1);
    
    });
    

    我们看上面的例子,只有当我们插入记录成功的时候才会做删除操作,如果插入不成功,不会做删除操作。

    比如我们故意写错一个字段name1,数据表中没有name1该字段,插入程序不会执行成功,那么下面的删除语句没有问题,但是他依然不会执行。

    除此之外,我们还可以手动控制事务。看下面代码:

    // 启动事务
    
    Db::startTrans();
    
    try {
    
        Db::table('think_user')->find(1);
    
        Db::table('think_user')->delete(1);
    
        // 提交事务
    
        Db::commit();
    
    } catch (Exception $e) {
    
        // 回滚事务
    
        Db::rollback();
    
    }
    

    以上就是ThinkPHP6中的事务操作的内容,通过咱们实际生活中的例子讲解,大家对事务操作就可以很好的理解了。

    点关注,不迷路

    好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。之前说过,PHP方面的技术点很多,也是因为太多了,实在是写不过来,写过来了大家也不会看的太多,所以我这里把它整理成了PDF和文档,如果有需要的可以

    点击进入暗号: PHP+「平台」

    在这里插入图片描述

    在这里插入图片描述


    更多学习内容可以访问【对标大厂】精品PHP架构师教程目录大全,只要你能看完保证薪资上升一个台阶(持续更新)

    以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的 PHP技术交流群

  • 相关阅读:
    引用 Geoprocessing调用ArcToolBox工具使用总结
    MySQL权限改观何时生效
    Ubuntu下安装*.bin挨次
    创立初始的MySQL权限
    MySQL的日期和光阴范例
    MySQL存取节制, 阶段1:连接证明
    让Linux操作零碎可以Mount NTFS分区
    Citrix进级XenDesktop桌面虚拟化产物
    如何在两台MySQL数据库间完成同步
    MySQL的数字
  • 原文地址:https://www.cnblogs.com/it-abu/p/14315486.html
Copyright © 2020-2023  润新知