Yah, saya tidak tahu apakah ini akan berhasil, tetapi Anda sebenarnya dapat mencoba ini:
1) buat 2 grup pengaturan database (di application/config/database.php):
// regular one..
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
//...
// second connection
$db['second']['hostname'] = 'localhost';
$db['second']['username'] = 'root';
//...
2) Matikan deubg untuk menghindari menampilkan kesalahan db dan benar-benar mematikan skrip Anda (lakukan untuk keduanya):
$db['default']['db_debug'] = FALSE;
3) Anda dapat meneruskan TRUE ke parameter kedua saat memuat perpustakaan, sehingga benar-benar memiliki nilai balik; ia mengembalikan objek database itu sendiri:
$dbobject1 = $this->load->database('default',TRUE);
$dbobject2 = $this->load->database('second',TRUE);
Sekarang, Anda cukup memeriksa sumber daya "ID sambungan" untuk melihat apakah sambungan telah dibuat atau tidak:
if(FALSE === $dbobject1->conn_id)
{
echo 'No connection established!';
}
Sekarang Anda dapat memutuskan untuk memuat DB lain jika yang pertama tidak dimuat. Kelemahannya adalah, Anda tidak tahu sebenarnya mengapa koneksi db tidak berfungsi...
Adapun cara mengimplementasikan ini, Anda mungkin ingin mencoba memperluas kelas database atau, lebih baik, membuat perpustakaan Anda sendiri yang sebenarnya hanya memeriksa apakah ada koneksi atau tidak, dan memuat ini alih-alih perpustakaan database. Karena ia mengembalikan objek database (terlepas ketika semua 2 koneksi gagal), Anda kemudian dapat mengerjakannya seperti yang akan Anda lakukan pada kelas database normal:
class Check_db {
private $CI = '';
public $DB1 = '';
public $DB2 = '';
function __construct()
{
$this->CI =&get_instance();
$this->DB1 = $this->CI->load->database('default',TRUE);
if(FALSE !== $this->DB1->conn_id)
{
return $this->DB1;
}
else
{
$this->DB2 = $this->CI->load->database('second',TRUE);
if(FALSE !== $this->DB2->conn_id)
{
return $this->DB2;
}
else
{
return FALSE;
}
}
}