相知犹按剑 发表于 2011-7-6 00:15:08

CI 2.0下面,多个数据库服务器的配置和使用方案

    我是菜鸟,刚刚入手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());
    }
}

coderchen 发表于 2011-7-7 10:50:36

学习一下~~~

ci-ouu 发表于 2011-7-7 12:42:37

的确

long5991000 发表于 2011-7-8 10:37:48

$DBFavorite->get('favorite001', 10);

这里不用写 $DBFavorite->db->get():直接就可以get了吗?

相知犹按剑 发表于 2011-7-12 23:58:10

是的,写成$DBFavorite->db->get():反而就不行了
页: [1]
查看完整版本: CI 2.0下面,多个数据库服务器的配置和使用方案