Discuz DB层跨库映射关系表名前缀BUG修复后产生的新bug
新的逻辑引入了新的bug,会导致在跨多库连接时,产生表名前缀映射混乱,需要再做逻辑上的修复。

function table_name($tablename) {
if(!empty($this->map) && !empty($this->map[$tablename])) {
$id = $this->map[$tablename];
if(!empty($this->config[$id]['tablepre'])){
$this->tablepre = $this->config[$id]['tablepre'];
}
if(!$this->link[$id]) {
$this->connect($id);
}
$this->curlink = $this->link[$id];
} else {
$this->tablepre = $this->config['1']['tablepre'];
$this->curlink = $this->link[1];
}
return $this->tablepre.$tablename;
}
附db Map 写法:
$_config['db']['1']['dbhost'] = 'localhost'; // 服务器地址
$_config['db']['1']['dbuser'] = 'root'; // 用户
$_config['db']['1']['dbpw'] = 'root';// 密码
$_config['db']['1']['dbcharset'] = 'gbk';// 字符集
$_config['db']['1']['pconnect'] = '0';// 是否持续连接
$_config['db']['1']['dbname'] = 'x1';// 数据库
$_config['db']['1']['tablepre'] = 'pre_';// 表名前缀 $_config['db']['2']['dbhost'] = 'localhost';
..... //再配置一些数据源
$_config['db']['xxx_sys']['dbhost'] = 'localhost'; //映射
$_config['db']['map']['yyy_table'] = 'xxx_sys';
上一篇文章:http://www.cnblogs.com/x3d/p/3913690.html
Discuz DB层跨库映射关系表名前缀BUG修复后产生的新bug的更多相关文章
- 重大发现Discuz DB层跨库映射关系表名前缀BUG
本文更新:http://www.cnblogs.com/x3d/p/3916198.html 场景: 在Discuz中创建Table模型,但该Table所在库与Discuz不在同一个库. Discuz ...
- Oracle 跨库 查询 复制表数据 分布式查询
方法一: 在眼下绝大部分数据库有分布式查询的须要.以下简单的介绍怎样在oracle中配置实现跨库訪问. 比方如今有2个数据库服务器,安装了2个数据库.数据库server A和B.如今来实如今A库中訪问 ...
- DB分布式 跨库分页
DB分布式-两种方式 1. JDBC扩展 sharding-jdbc: 直接封装JDBC,代码迁移成本低,适用于任何连接池及ORM框架,JAR包提供服务,未使用中间层,不用额外部署,DBA无需 ...
- Oracle 跨库 查询 复制表数据
在目前绝大部分数据库有分布式查询的需要.下面简单的介绍如何在oracle中配置实现跨库访问. 比如现在有2个数据库服务器,安装了2个数据库.数据库server A和B.现在来实现在A库中访问B的数据库 ...
- Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、
查询所有表名:select t.table_name from user_tables t;查询所有字段名:select t.column_name from user_col_comments t; ...
- 【转】Oracle 查询库中所有表名、字段名、表名说明、字段名说明
转自 :http://gis-conquer.blog.sohu.com/170243422.html 查询所有表名:select t.table_name from user_tables t; 查 ...
- Oracle 查询库中所有表名、字段名、表名说明、字段名说明(原创)
查询所有表名:select t.table_name from user_tables t;查询所有字段名:select t.column_name from user_col_comments t; ...
- MyBatis逆向工程去除表名前缀
https://www.jianshu.com/p/e09d2370b796 https://blog.csdn.net/baidu_16757561/article/details/75071476 ...
- Oracle跨库访问数据表-DBLINK
1:创建DBLINK(USING后面的连接字符串就是要访问的那个数据库的连接字符串) CREATE DATABASE LINK linkName CONNECT TO userName IDENTIF ...
随机推荐
- javascript 的一些理解和随笔
一.iframe里面的页面调用父窗口,左右窗口js函数的方法 iframe里面的页面调用父窗口,左右窗口js函数的方法 实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法. 比如 ...
- Gradle 笔记
网上有一篇文章说的很明白,图文来教你在eclipse下用gradle 来打包Androidhttp://blog.csdn.net/x605940745/article/details/4124268 ...
- iOS CoreData 增删改查详解
最近在学习CoreData, 因为项目开发中需要,特意学习和整理了一下,整理出来方便以后使用和同行借鉴.目前开发使用的Swift语言开发的项目.所以整理出来的是Swift版本,OC我就放弃了. 虽然S ...
- 利用vba将excel中的图片链接直接转换为图片
Sub test() Dim rg As Range, shp As Shape Rem --------------------------------------------------- Rem ...
- ROS vpn (pptp) 配置及端口绑定配置
网络搜集 一. 按VPN的协议分类 VPN的隧道协议主要有三种,PPTP,L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议:IPSec是第三层隧道协议,是最 ...
- 延迟渲染 deferred Shading
流程: 1.先渲染一遍物体的位置,法线 和颜色 到三张纹理 2.在根据这三张纹理渲染一遍灯光 3.合成颜色图和灯光图 (ssao图) 看上去好像灯光不多,其实我在这里加了200个灯, 每个球代表 ...
- hadoop 转
detailed http://wenku.baidu.com/view/c2d1ebb4ba0d4a7302763a84.html http://hadoop.apache.org/docs/r1. ...
- HTTP 详解一 -- 转
HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...
- 多个Storyboard的使用
创建一个Storyboard工程 storyboard是在ios5中引入的新控件,能够更加清晰.简单的整合多个ViewController的关系,下面主要介绍一下怎么初建一个storyboard的工程 ...
- 【转】ORATOP工具使用说明
文章转自:http://lintzyuan.blogspot.jp/2014/07/oratop.html ORATOP 前言:隨著PC Server的規格及速度愈來愈快,大多數的公司摒棄大型主機 ...