大米CMS官网论坛,大米站长联盟,大米站长之家,大米开发者社区

 找回密码
 注册大米会员

QQ登录

只需一步,快速开始

查看: 1934|回复: 0
打印 上一主题 下一主题

thinkphp3.X主从MYSQL读写分离数据库的一处BUG

[复制链接]

498

主题

775

帖子

7639

积分

超级版主

Rank: 8Rank: 8

积分
7639

授权用户

跳转到指定楼层
楼主
发表于 2022-4-22 13:51:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一旦事务体内,同时存在写入再读出,再写入这样的操作,TP在识别数据库的时候把读操作和写操作识别到了两个库。实际上希望事务开启后,所有事务体内的操作都应该走主库
解决方案: 如果开启事务后,强行读操作走主库。
\Core\Lib\Driver\Db\DbMysqli.class.php 和DbMysql.class.php 查找function query将initConnect替换为:
  1. if ($this->transTimes > 0) {
  2.                 $this->initConnect(true);
  3.                 }else{
  4.         $this->initConnect(false);
  5.                 }
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册大米会员

本版积分规则

QQ|小黑屋|大米CMS社区 ( 蜀ICP备11002200号-2广告联系:广告联系 

Powered by 大米CMS

© 2010-2020 大米CMS Inc.

快速回复 返回顶部 返回列表