tp5中的事务处理

这篇具有很好参考价值的文章主要介绍了tp5中的事务处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用事务首先要数据库支持事务;
如下MySQL数据库user表开启事务支持,即设计表->引擎设置为InnoDB->保存
tp5中的事务处理,PHP,php文章来源地址https://www.toymoban.com/news/detail-641033.html

事务处理
1. 数据库的表引擎需要是 InnoDB 才可以使用,如果不是调整即可;
2. 事务处理,需要执行多个 SQL 查询,数据是关联恒定的;
3. 如果成功一条查询,改变了数据,而后一条失败,则前面的数据回滚;
4. 比如:蜡笔小新给路飞 3 快钱,自己-3,对方+3,这时需要事务处理;
5. 系统提供了两种事务处理的方式,第一种是自动处理,出错自动回滚;
Db::transaction(function () {
	Db::name('user')->where('id', 19)->save(['price'=>Db::raw('price - 3')]);
	Db::name('user1')->where('id', 20)->save(['price'=>Db::raw('price + 3')]);
});
=========事务回调函数内部给外部变量赋值=======方便操作后根据结果做判断
public function trans(){
    $res1=0;
    $res2=0;
    $res=[];
    Db::transaction(function ()use(&$res,&$res1,&$res2){
        $res1=Db::table('user')->where(['name'=>'qc'])->setDec('age',2);
        $res2=Db::table('user')->where(['name'=>'qzy'])->setInc('age',2);
        $res=Db::table('user')->where(['name'=>'qc'])->find();
    });
    if($res1&$res2){
        dump($res1);
        dump($res2);
        dump($res);
    }

    return 123;
}

6. 手动处理,基本和原生处理类似,可以自行输出错误信息;
//启动事务
Db::startTrans();
try {
	Db::name('user')->where('id', 19)->save(['price'=>Db::raw('price - 3')]);
	Db::name('user1')->where('id', 20)->save(['price'=>Db::raw('price + 3')]);
	//提交事务
	Db::commit();
} catch (\Exception $e) {
	echo '执行 SQL 失败!';
	//回滚
	Db::rollback();
}

到了这里,关于tp5中的事务处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • tp8 升级TP框架版本,同时网站打不开,错误代码 ERR_ADDRESS_INVALID,启动内置服务器 运行PHP命令php think run 输出结果是空白

    环境:windows11  phpstudy_pro  thinkphp8.0 php8.2.9   进入composer : 选择composer,再选择对应网站的PHP版本, 启动内置服务器 按上面操作,发现输出结果是空白,没有任何东西 三、启用VSCODE的xdebug调试 在VSCODE中启用调试F5,在think文件中打断点 全部勾上 一直一步一步往下走,发现

    2024年01月22日
    浏览(88)
  • PHPstudy配置伪静态步骤,tp5.1的框架

    搜索mod_rewrite.so,然后去掉前面的#(即放开注释) 2.找到index.php 同级文件.htaccess(没有就新建) 这些是tp5.1自带的内容,把它注释掉,是错误的内容,添加下面的这段配置 3.配置文件有3处 AllowOverride none;我测试的不用改为AllowOverride all 一处都不用动,都是none也可以。 这个

    2024年02月14日
    浏览(66)
  • 6.php开发-个人博客项目&Tp框架&路由访问&安全写法&历史漏洞

    目录 知识点 php框架——TP URL访问 Index.php-放在控制器目录下 ​编辑 Test.php--要继承一下 带参数的—————— 加入数据库代码 --不过滤 --自己写过滤 --手册(官方)的过滤 用TP框架找漏洞: 如何判断网站是thinkphp? 黑盒: 白盒: php总结 ​ 1-基于TP框架入门安装搭建使用

    2024年01月25日
    浏览(57)
  • PHP最简单自定义自己的框架实现像TP链式sql语句(六)

    1、实现效果,链式sql语句封装 order、where、group、limit等封装    2、数据表构造函数入参,ModelBase.php 3、ModelBase.php定义order、where、group、limit等参数以及默认值 4、封装select、find、delete等方法动态参数ModelBase.php 5、indexCrl.php调用链式sql 6、完整的ModelBase.php文件

    2024年02月13日
    浏览(50)
  • 将tp5项目、fastadmin项目部署到服务器宝塔面板

            目录 一、将你的fastadmin或者tp5项目文件夹上传至你的服务器域名根目录下  二、修改你的网站目录指向,指向public目录,点击保存,并取消勾选防跨站攻击。  三、配置伪静态 四、fastadmin框架上传至服务器后如果想要访问后台可以进行重定向,默认访问前台 五、

    2024年02月13日
    浏览(63)
  • 第27天:安全开发-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞

    1.TP框架-开发-配置架构路由MVC模型 参考:https://www.kancloud.cn/manual/thinkphp5_1 配置架构-导入使用 路由访问-URL访问 数据库操作-应用对象 文件上传操作-应用对象 前端页面渲染-MVC模型 1.TP框架-安全-不安全写法版本过滤绕过 1.内置代码写法 不合要求的代码写法-ThinkPHP5-自写 2.框架

    2024年04月25日
    浏览(65)
  • php+mysql的基于微信小程序的企业装修平台的设计与实现 TP框架(附源码 调试 讲解 文档)

    随着移动互联网的普及,传统的装修行业逐渐向互联网装修转型。微信小程序作为一种新型的应用形态,凭借其便捷性、易用性和普及性,成为了企业装修平台开发的首选。本文旨在设计和实现一个基于微信小程序的企业装修平台,通过公司展示、案例展示、设计师展示、在

    2024年02月05日
    浏览(55)
  • 【黄啊码】什么是ElasticSearch?它会替代MySQL成为主流吗?如何优化?TP5如何接入ElasticSearch?

    目录 什么是ElasticSearch? ES和MySQL使用场景的比较 Elasticsearch和MySQL具体应用场景: 如何优化: 索引效率优化 批量提交 优化硬件、 减少副本数量 查询效率优化 路由 不带 routing 查询 Filter VS Query 大翻页 JVM 设置 TP5如何接入ElasticSearch? Elasticsearch 是一个分布式、高扩展、高实时

    2024年01月16日
    浏览(55)
  • 「PHP系列」PHP文件处理及文件上传详解

    PHP 提供了丰富的文件处理功能,使得开发者可以方便地在服务器端进行文件的创建、读取、写入、删除等操作。以下是一些常见的 PHP 文件处理操作及其示例: 使用 fopen() 函数打开文件: 模式可以是以下之一: \\\"r\\\" :只读方式打开,将文件指针指向文件头。 \\\"w\\\" :写入方式打

    2024年04月22日
    浏览(45)
  • PHP 安全:如何防止PHP中的SQL注入?

    SQL注入防护对于确保数据库的安全性和完整性至关重要。它涉及实施有效措施来阻止将未经授权的 SQL 代码注入应用程序的恶意尝试。开发人员可以利用输入验证和参数化查询等技术来清理用户输入,确保任何潜在的恶意代码都无害。此外,使用预准备语句和存储过程可以通

    2024年04月29日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包