tim*_*son 5 php mysql database-connection codeigniter
我想用我的主数据库备份我的只读副本(即奴隶)数据库但这个简单的布尔我失败了:
$config['hostname'] = "myReadReplicaDatabase.com";
//...$config['other_stuff']; other config stuff...
$db_obj=$CI->load->database($config, TRUE);
if(!$db_obj){
$config['hostname'] = "myMasterDatabase.com";
$db_obj=$CI->load->database($config, TRUE);
}
Run Code Online (Sandbox Code Playgroud)
在终止我的只读副本数据库后,我希望布尔值得到评估,FALSE然后脚本使用我的主数据库.不幸的是,我收到了以下PHP错误:
Unable to connect to your database server using the provided settings.
Filename: core/Loader.php
Run Code Online (Sandbox Code Playgroud)
我想要的只是连接返回true或false,有人知道如何在Codeigniter中执行此操作吗?
tim*_*son 11
Codeigniter论坛上的这个帖子回答了我的问题.
关键是不要自动初始化数据库:
$db['xxx']['autoinit'] = FALSE;
Run Code Online (Sandbox Code Playgroud)
要抑制错误,您可以设置此项
$db['xxx']['db_debug'] = FALSE;
Run Code Online (Sandbox Code Playgroud)
然后在检查db状态的代码中,检查initialize()函数的TRUE/FALSE:
$db_obj = $this->database->load('xxx',TRUE);
$connected = $db_obj->initialize();
if (!$connected) {
$db_obj = $this->database->load('yyy',TRUE);
}
Run Code Online (Sandbox Code Playgroud)
这是我的整个配置文件以供将来参考:https://gist.github.com/3749863.