tp5.1 db助手与db::name混合使用数据库操作失效

首先说明下db助手与db::name,db::table的区别
db助手,每次使用都会重新创建数据库连接,db::name,db::table只创建一次

可以从tp日志查看到

在项目开发中,由于使用不规范,在使用Db::startTrans(),开启事务后,程序逻辑顺序执行为:
1.Db::name 去更新表1,
2.使用db()助手去更新表2,
3.又使用Db::name去更新表3,
4.又使用了db(),
5.最后执行Db::commit();
结果发现,2条db::name操作数据的记录,虽然能看到tp操作日志,但是数据库并没有相应的变化,也就是Db::commit()没有对它们起作用,反倒是db助手的操作都起效。
具体原因,还没去深究,我推测是:db助手本身每次都创建连接,执行完后就提交,所以这种程序不规范写法相当于是事务中嵌套事务,最外层不起作用。因为之前我也有遇到过,上级方法使用Db::startTrans()开启事务,然后在未提交事务过程中,又调用了下级方法,下级方法中也使用了Db::startTrans(),虽然都统一用Db::name,但结果是发现Db::commit(),并未对所有数据库操作语句起效。
也建议大家不要在事务中嵌套事务(本人数据库学艺不精)。

tp5.1 db助手与db::name混合使用数据库操作失效相关推荐

  1. 大型网站的负载均衡器、db proxy和db

    大型网站的负载均衡器.db proxy和db 本文主要分析网站后台架构中的负载均衡器,企业常用的硬件负载均衡器软件负载均衡器.数据库代理服务器和数据库. 1.1 负载均衡 在大型网站部署中,负载均衡至 ...

  2. (转)大型网站的负载均衡器、db proxy和db

    大型网站的负载均衡器.db proxy和db 本文主要分析网站后台架构中的负载均衡器,企业常用的硬件负载均衡器软件负载均衡器.数据库代理服务器和数据库. 1.1 负载均衡 在大型网站部署中,负载均衡至 ...

  3. [Android]DDMS查看app保存的Sqlite数据库db文件和db升级

    [Android]DDMS查看app保存的Sqlite数据库db文件和db升级 @Author GQ 2017年06月06日 项目的app中大多需要用到本地sqlite存储,所以需要看到自己是否保存成 ...

  4. discuz mysql类_Discuz论坛教程之数据库操作DB类和C::t类介绍

    Discuz论坛教程之数据库操作DB类和C::t类介绍 类定义文件 DB类: 文件\source\class\class_core.php [php]view plaincopy classDB ex ...

  5. discuz mysql类_Discuz X2二次开发之数据库操作 DB类

    Discuz X2的数据库操作类主要包括以下几个: DB::result_first 返回SQL查询的唯一字段的唯一值,查询结果是字符 DB::fetch_first 返回SQL查询的多个字段的值,查 ...

  6. dB HL与dB SPL含义与区别

    dB HL与dB SPL含义与区别 转载▼ 1.大家知道,分贝是用来表示声音强度大小的单位,在物理声学上,它是以测量点的声压P除以基准声压Pr,然后通过对数计算得出的,即: 其中"SPL&q ...

  7. rake db:migrate db:reset和db:schema:load之间的区别

    本文翻译自:Difference between rake db:migrate db:reset and db:schema:load The difference between rake db: ...

  8. 史上最全的dB分贝单位合集: dB,dBFS, dB FS, dBTP, dB TP, dBO, dBov, dBu/dBv, dBV, dBm/dBmW, dBW,...

    dB 数值范围根据实际测量的参考值有变化.计算能量: 计算场量: 领域 电压 dBu/dBv dBmV dB(1 mVRMS)–电压相对于75 Ω阻抗上的1毫伏.[16]广泛用于有线电视网,其接收端的 ...

  9. Mybatis新发现—在idea中数据库操作出现了异常,最好的查错助手居然是这个!

    Mybatis新发现--如果一个数据库操作出现了异常,最好的助手居然是这样! 1. 日志工厂 如果一个数据库操作出现了异常,我们需要排错.日志就是最好的助手. 曾经:sout,debug 现在:日志工 ...

最新文章

  1. 哪些人适合学习软件测试
  2. php经典实例使用正则动态修改配置文件
  3. [Java基础]抽象类基础
  4. centos操作---搭建环境 安装python
  5. HDU 4273 Rescue(三维凸包重心)
  6. GetTickCount
  7. w ndows10专业版连接不上网,Win10电脑连不上网怎么回事?Win10电脑连不上网解决办法...
  8. vue CAD-dwg格式文件预览
  9. Task01:熟悉新闻推荐系统的基本流程(数据库设计)
  10. powerdesigner制作数据字典
  11. 基金使用计划 数学建模 matlab,基金使用计划模型
  12. qiankun加载react子应用报错[import-html-entry]: error occurs while executing normal script
  13. 性能计数器驱动_北京纳米能源所王中林院士机械力驱动的摩擦电高效空气负离子发生器...
  14. 简单代理事件工具(百搜技术)
  15. 科学论文写作文献查找运用--WOS文献导出
  16. LTE IPV6地址配置
  17. [Java初学]Java上溯造型(upcasting)与下溯造型(Downcasting)
  18. 创意APP如何盈利?怎么赚钱的?
  19. 论影响高学习效率的几大因素
  20. java 发布和逸出

热门文章

  1. Android studio 解决运行按钮灰色/禁用状态
  2. T-SQL基本语句总结(SQL Server版)
  3. 前端框架Vue中各个文件夹的具体作用简介
  4. 由IDC余热回收创新技术实践引出的跨界合作探讨
  5. JFrog Artifactory的数据备份与恢复教程
  6. 知乎cookies的介绍_使用cookie登陆知乎
  7. matlab打印函数disp如何不换行
  8. Matlab的title如何实现换行显示?
  9. vmware中Linux虚拟机的克隆
  10. 计算机网络—IP地址与子网划分