PHP--ThinkPHP6.0 事务操作

PHP–ThinkPHP6.0 事务操作

博客说明

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

说明

都是先学功能,后面使劲的完善

看云文档地址

https://www.kancloud.cn/manual/thinkphp6_0/1037573

前提条件

使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQLMyISAM 不支持事务处理,需要使用 InnoDB 引擎

在这里插入图片描述

在这里插入图片描述

放这两张图片是因为要体现一下两种引擎

事务操作

使用 transaction 方法操作数据库事务,当闭包中的代码发生异常会自动回滚

//Db
Db::transaction(function () {
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);
});


//model
Db::transaction(function () {
    User::where('id',$user_id)->find();
    User::where('id',$user_id)->delete();
});

手动控制事务

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

// model启动事务
Db::startTrans();
try {
    User::where('id',$user_id)->find();
    User::where('id',$user_id)->delete();
    // 提交事务
    Db::commit();
} catch (\Exception $e) {
    // 回滚事务
    Db::rollback();
}

感谢

ThinkPHP

以及勤劳的自己

发布了265 篇原创文章 · 获赞 666 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_45163122/article/details/105482993