CodeIgniter框架同时连接多个数据库

一 、配置数据库

描述:CodeIginter有一个配置文件让你存放数据库连接值(username:用户名,password:密码,database name:数据库名,等等……) 文件位置:该配置文件位于application/config/database.php 注意事项:除默认数据库外其他的数据库的pconnect键名对应的键值为FALSE

示例:

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';    //数据库的主机名,通常位于本机,可以表示为“localhost”
$db['default']['username'] = 'root';    //需要连接到数据库的用户名
$db['default']['password'] = '123456';    //登陆数据库的密码
$db['default']['database'] = 'db1';    //你需要连接的数据库名
$db['default']['dbdriver'] = 'mysql';    //数据库类型。例如:mysql,postgres,odbc等。必须以小写字母
$db['default']['dbprefix'] = '';     //当运行Active Record查询时数据表的前缀,它允许在一个数据库连接上安装多个CodeIgniter程序
$db['default']['pconnect'] = TRUE;    // TRUE/FALSE(boolean)-使用持续链接
$db['default']['db_debug'] = TRUE;    //TRUE/FALSE(boolean)-显示数据库错误信息
$db['default']['cache_on'] = FALSE;    //TRUE/FALSE(boolean)-数据库查询缓存是否开启。详情见CodeIgniter数据库缓存类
$db['default']['cachedir'] = '';    //数 据库查询缓存目录所在服务器 绝对路径
$db['default']['char_set'] = 'utf8';    //与数据库通信时所使用的字符集
$db['default']['dbcollat'] = 'utf8_general_ci';    //与数据库通信时所使用的字符规则
$db['default']['swap_pre'] = '';    //替换默认的dbprefix表前缀,该设置项对于分别式应用是非常有用的,你可以查询中使用由最终用户定制的表前缀
$db['default']['autoinit'] = TRUE;    //当数据库(database library)被载入的时候是否需要自动连接数据库,如果设置为FALSE, 将在首次查询前进行连接
$db['default']['stricton'] = FALSE;    //TRUE/FALSE(boolean)-是否强制使用“Strict Mode”链接,在开发程序时,使用strict SQL是一个好习惯

$db['db2']['hostname'] = 'localhost';
$db['db2']['username'] = 'root';
$db['db2']['password'] = 123456';
$db['db2']['database'] = 'db2';
$db['db2']['dbdriver'] = 'mysql';
$db['db2']['dbprefix'] = '';
$db['db2']['pconnect'] = FALSE;    //特别注意哦
$db['db2']['db_debug'] = TRUE;
$db['db2']['cache_on'] = FALSE;
$db['db2']['cachedir'] = '';
$db['db2']['char_set'] = 'utf8';
$db['db2']['dbcollat'] = 'utf8_general_ci';
$db['db2']['swap_pre'] = '';
$db['db2']['autoinit'] = TRUE;
$db['db2']['stricton'] = FALSE;

二、在model中连接数据库

示例:

class test_model extends CI_Model{
    var $db_connect1;
    var $db_connect2;
    public function __construct(){
        parent::__construct();
        $this->db_connect1 = $this->load->database('default', TRUE);
        $this->db_connect2= $this->load->database ('db2', TRUE);
    }
    public function get_db1($date){
        $query = $this->db_connect1->query("SELECT * FROM db1 where date='$date'");
        return $query->row_array();
    }
    public function get_db2($date){
        $query = $this->db_connect2->query("SELECT * FROM db2 where date='$date'");
        return $query->row_array();
    }
}

转自:深度开源

Comments: 2

「人生在世,留句话给我吧」

提交评论