安静
PHP技术博客

130417 discuz x2.5 多数据库实例调用方法

说点什么好? 头会遇到这是。。。尴尬。。。。

用户部分数据 信息来源同库另外一个实例 现在要改成跨库 .

其实是做成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);
赞(0) 打赏
未经允许不得转载:AJ's Blog » 130417 discuz x2.5 多数据库实例调用方法
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

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

支付宝扫一扫打赏

微信扫一扫打赏