如何设置我的codeigniter应用程序,以便如果它无法连接到一个mysql服务器,它连接到另一个?即:设置主mysql和辅助mysql。
答案 0 :(得分:0)
不确定,开箱即可。你将不得不破解框架。
答案 1 :(得分:0)
我会在config / database中设置多个codeigniter数据库(见下文)
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'uname';
$db['default']['password'] = 'pword';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
$db['db2']['hostname'] = 'hostname1';
$db['db2']['username'] = 'uname';
$db['db2']['password'] = 'pword';
$db['db2']['database'] = '';
$db['db2']['dbdriver'] = 'mysql';
$db['db2']['dbprefix'] = '';
$db['db2']['pconnect'] = TRUE;
$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;
然后在我的控制器中,我将加载数据库并检查它是否成功。
$this->db = $this->load->database('default', TRUE); //If it isn't pre-loaded
if($this->db->conn_id === FALSE){
$this->db = $this->load->database('db2', TRUE);
}
我没有测试过,但我认为它会起作用。