我有两个服务器,尝试连接第一个或第二个服务器,如果第一个连接仍然有效,而不是使用第一个连接ID,则连接到另一台服务器,但是连接ID不会出现吗?
$db['slave01']['hostname'] = 'xx.xx.xxx.xx';
$db['slave01']['username'] = 'xxxxxx';
$db['slave01']['password'] = 'xxxx';
$db['slave01']['database'] = 'xxx';
$db['slave01']['dbdriver'] = 'mysql';
$db['slave01']['dbprefix'] = '';
$db['slave01']['pconnect'] = TRUE;
$db['slave01']['db_debug'] = FALSE; // =>here set FALSE
$db['slave01']['cache_on'] = FALSE;
$db['slave01']['cachedir'] = '';
$db['slave01']['char_set'] = 'utf8';
$db['slave01']['dbcollat'] = 'utf8_general_ci';
$db['slave01']['swap_pre'] = '';
$db['slave01']['autoinit'] = TRUE;
$db['slave01']['stricton'] = FALSE;
和另一台服务器的详细信息
$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);
if(!$this->READ->conn_id){
echo "<br>Not connected";
$this->READ = $this->load->database('slave02', TRUE);
}else{
echo "<br>Connected slave01 : ".$this->READ->conn_id;
}
echo "<br>Connected slave02 : ".$this->READ->conn_id;
但是连接ID无法打印!我该如何解决?
既然你想知道的intialize的反应,我建议关闭自动初始化到FALSE
数据库连接两者。
$db['slave01']['autoinit'] = FALSE;
// AND
$db['slave02']['autoinit'] = FALSE;
然后在检查db状态的代码中,检查initialize()
函数的TRUE / 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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句