如何在codeigniter php中处理连接错误

如何在codeigniter php中处理连接错误,php,codeigniter,Php,Codeigniter,我有两台服务器,尝试连接第一台或第二台, 如果第一个连接处于活动状态,则使用第一个连接id else 连接到另一台服务器, 但是连接id不来吗 这是我的config/database.php 和另一个服务器的详细信息 $db['slave02']['hostname'] = 'xx.xx.xxx.xx'; $db['slave02']['username'] = 'xxxxxx'; $db['slave02']['password'] = 'xxxx'; $db[

我有两台服务器,尝试连接第一台或第二台, 如果第一个连接处于活动状态,则使用第一个连接id else 连接到另一台服务器, 但是连接id不来吗

这是我的config/database.php 和另一个服务器的详细信息

    $db['slave02']['hostname'] = 'xx.xx.xxx.xx';
    $db['slave02']['username'] = 'xxxxxx';
    $db['slave02']['password'] = 'xxxx';
    $db['slave02']['database'] = 'xxx';
    $db['slave02']['dbdriver'] = 'mysql';
    $db['slave02']['dbprefix'] = '';
    $db['slave02']['pconnect'] = TRUE;
    $db['slave02']['db_debug'] = FALSE; // =>here set FALSE
    $db['slave02']['cache_on'] = FALSE;
    $db['slave02']['cachedir'] = '';
    $db['slave02']['char_set'] = 'utf8';
    $db['slave02']['dbcollat'] = 'utf8_general_ci';
    $db['slave02']['swap_pre'] = '';
    $db['slave02']['autoinit'] = TRUE;
    $db['slave02']['stricton'] = FALSE;
内部控制器
$this->READ=$this->load->database('slave01',TRUE);
如果(!$this->READ->conn\u id){
回显“
未连接”; $this->READ=$this->load->database('slave02',TRUE); }否则{ echo“
已连接的slave01:”.$this->READ->conn\u id; } echo“
已连接的slave02:”.$this->READ->conn\u id;

但是连接id不能打印!如何解决问题?

既然您想知道初始化的响应,我建议关闭两个db连接的自动初始化

$db['slave01']['autoinit'] = FALSE;
// AND
$db['slave02']['autoinit'] = FALSE;

然后在检查db状态的代码中,检查
initialize()
函数的真/假:

$db_obj = $this->load->database('slave01',TRUE);
$connected = $db_obj->initialize();
if (!$connected) 
{
    $db_obj = $this->load->database('slave02',TRUE);
}

$db_obj->conn_id = ($db_obj->pconnect == FALSE) ? $db_obj->db_connect() : $db_obj->db_pconnect();
echo $db_obj->conn_id;

在以下条件之后,我将尝试打印echo“
已连接:”..db_obj->conn_id;比输出不来吗?这在codegniter版本2中是有效的,因为他们在版本3中删除了它,检查changelog的链接:实际上值得一问!!
$db['slave01']['autoinit'] = FALSE;
// AND
$db['slave02']['autoinit'] = FALSE;
$db_obj = $this->load->database('slave01',TRUE);
$connected = $db_obj->initialize();
if (!$connected) 
{
    $db_obj = $this->load->database('slave02',TRUE);
}

$db_obj->conn_id = ($db_obj->pconnect == FALSE) ? $db_obj->db_connect() : $db_obj->db_pconnect();
echo $db_obj->conn_id;