Я бы настроил несколько баз данных codeigniter в config / database (см. Ниже)
$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);
}
Я не проверял это, но я бы предположил, что это будет работать.