说点什么好? 头会遇到这是。。。尴尬。。。。
用户部分数据 信息来源同库另外一个实例 现在要改成跨库 .
其实是做成api还是 直接数据库调用对我来说都很容易。 api 还可以做个缓存可惜我对另外一个项目知之甚少。 网上没有关于discuz 多数据库调用方式 今天这里给大家带来一个 我不确定这是一定最符合 disucz 原意的 多实例数据库 代码调用 但一定和好用。
成功案例基于 discuz 2.5
修改 conf/config_global.php
//新增数据库配置信息 $_config['db']['2']['dbhost'] = '192.168.1.2'; $_config['db']['2']['dbuser'] = 'root'; $_config['db']['2']['dbpw'] = '123'; $_config['db']['2']['dbcharset'] = 'utf8'; $_config['db']['2']['pconnect'] = '0'; $_config['db']['2']['dbname'] = 'op'; $_config['db']['2']['tablepre'] = 'op_';
修改 source/class/class_core.php
//最下面一行 增加 class DB_BI extends discuz_database{}
复制 soucrce/class/db_driver_mysql.php
成 db_driver_mysql_bi.php
修改 db_driver_mysql_bi.php 中
//修改class名字 class db_driver_mysql_bi.php //修改读取配置文件的序列号 $this->tablepre = $config['2']['tablepre']; //设置connect的标识信息 function connect($serverid = 2) {
引用新的数据库代码操作实例
$driver = 'db_driver_mysql_op'; $_config = array(); @include DISCUZ_ROOT.'./config/config_global.php'; DB_BI::init($driver, $_config['db']); $userinfo = DB_BI::fetch_first("SELECT * FROM op_users"); var_dump($userinfo);