我想切换运行时我笨多个数据库。 我的默认数据库将全面运行的页面,但是当我需要切换到基于情景或要求其他数据库,然后我可以做的。 常见的模型功能将会为所有不同的数据库。 所以,我想使用多个数据库连接相同型号和相同功能的使用动态选择不使用会话或没有经过函数变量
要做到这一点我设置cofig一个名字,当我打电话给我的模式我在控制器调用模型之前设置所需的数据库名称,然后我想在这是在控制器设定模型得到的名称。 但不幸的是我没有收到来自控制器的名称模型。
数据库配置文件 -
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'pass'
'database' => 'db1'
.......
);
$db['anotherDB'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'pass'
'database' => 'db2'
.......
);
控制器 -
$this->config->set_item('active_db', 'anotherDB');
$sql = 'select * from user';
$anotherDB_record = $this->model->customQuery($sql);
print_r($anotherDB_record);
$this->config->set_item('active_db', 'default');
$sql = 'select * from customer';
$default_record = $this->model->customQuery($sql);
print_r($default_record);
模式 -
protected $database;
function __construct() {
parent::__construct();
$oDB = $this->config->item('active_db');
$this->database = $this->load->database($oDB, TRUE);
}
function customQuery($sql){
$query = $this->database->query( $sql );
return $query->result();
}
这是我试过的方式来切换我的数据库。 如果你们有切换多个数据库的任何其他最佳的解决方案,然后请随时给我建议。