用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2862|回复: 4
收起左侧

[讨论/交流] CI 2.0下面,多个数据库服务器的配置和使用方案

[复制链接]
发表于 2011-7-6 00:15:08 | 显示全部楼层 |阅读模式
    我是菜鸟,刚刚入手CI 2.0,发现我在实际工作中用到的多服务器方面的东西在这里没有被介绍到,所以就把自己刚学来的拿出来献丑,为的是让下一个菜鸟不在迷茫。
    现在要解决的问题很简单,
1、我有两个数据库服务器,根据功能,姑且命名为“comment” 和 “favorite”,上面分别有同名数据库
2、CI目录的application/config/database.php内容如下:
<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

$active_group = 'comment';//作为默认
$active_record = TRUE;

//评论comment服务器
$db['comment'] = array(
    'hostname' => '10.9.10.1:3306',
    'username' => 'myname',
    'password' => 'mypassword',
    'database' => 'comment',
    'dbdriver' => 'mysql',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'gbk',
    'dbcollat' => 'gbk_chinese_ci',
    'swap_pre' => '',
    'autoinit' => TRUE,
    'stricton' => FALSE,
);
//收藏服务器
$db['favorite'] = array(
    'hostname' => '10.9.10.5:3306',
    'username' => 'myusername',
    'password' => 'mypassword',
    'database' => 'favorite',
    'dbdriver' => 'mysql',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'gbk',
    'dbcollat' => 'gbk_chinese_ci',
    'swap_pre' => '',
    'autoinit' => TRUE,
    'stricton' => FALSE,
);

/* End of file database.php */
/* Location: ./application/config/database.php */


3、下面示范用法在application/controllers/mytest.php

<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Mytest extends CI_Controller {
    public function index() {
        $this->load->database('comment', TRUE);//comment是默认数据库,这里也可以省略参数
        $query = $this->db->get('commenttable001', 10);
        var_dump($query->result());

        $DBFavorite = $this->load->database('favorite', TRUE);
        $query = $DBFavorite->get('favorite001', 10);
        var_dump($query->result());
    }
}
发表于 2011-7-7 10:50:36 | 显示全部楼层
学习一下~~~
发表于 2011-7-7 12:42:37 | 显示全部楼层
的确
发表于 2011-7-8 10:37:48 | 显示全部楼层
PHP复制代码
$DBFavorite->get('favorite001', 10);
复制代码


这里不用写 $DBFavorite->db->get():  直接就可以get了吗?
 楼主| 发表于 2011-7-12 23:58:10 | 显示全部楼层
是的,写成$DBFavorite->db->get():  反而就不行了

本版积分规则