我有一个上传到主机服务器的控制器和另一个上传到youtube的控制器。在前控制器完成其工作之后,它将重定向到后者。在涉及youtube的特别长的上传过程之后,我得到了“MySQL服务器已经消失”的错误
我使用此代码重新连接到Codeigniter中的数据库以解决该问题。
$this->db->reconnect();
相反,我收到了错误
A Database Error Occurred
Unable to select the specified database: test_database
....
我尝试在“重新连接”代码之前和之后添加此代码,但它没有帮助(下面的'test'是我正在使用的数据库配置中活动组的名称。)
$this->load->database('test');
任何人都知道如何解决这个问题?
答案 0 :(得分:5)
在MySQL中禁用自动重新连接时调用重新连接()将引发错误,并且根据您的配置文件中的错误状态,PHP安装将显示并记录错误。
最好的方法是关闭连接并手动重新连接:
$this->db->close();
$this->db->initialize();
希望有所帮助
答案 1 :(得分:2)
您可能实际上想要扩展数据库类,然后实现自己的重新连接过程。你可以实现这样的东西:
...
if(!mysql_ping($this -> conn_id)) {
$this -> _close();
$this -> db_connect();
}
...
要知道如何扩展数据库类,请参阅以下链接: