CodeIgniter框架同时连接多个数据库
jopen
10年前
一 、配置数据库
1. 描述:CodeIginter有一个配置文件让你存放数据库连接值(username:用户名,password:密码,database name:数据库名,等等......) 2. 文件位置:该配置文件位于application/config/database.php 3. 注意事项:除默认数据库外其他的数据库的pconnect键名对应的键值为FALSE 4. 示例: $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中连接数据库
1. 示例: 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(); } }