Codeigniter数据库重新连接无法正常工作

时间:2012-02-29 09:18:44

标签: mysql codeigniter

我有一个上传到主机服务器的控制器和另一个上传到youtube的控制器。在前控制器完成其工作之后,它将重定向到后者。在涉及youtube的特别长的上传过程之后,我得到了“MySQL服务器已经消失”的错误

我使用此代码重新连接到Codeigniter中的数据库以解决该问题。

$this->db->reconnect();

相反,我收到了错误

A Database Error Occurred
Unable to select the specified database: test_database
....

我尝试在“重新连接”代码之前和之后添加此代码,但它没有帮助(下面的'test'是我正在使用的数据库配置中活动组的名称。)

$this->load->database('test');

任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

在MySQL中禁用自动重新连接时调用重新连接()将引发错误,并且根据您的配置文件中的错误状态,PHP安装将显示并记录错误。

最好的方法是关闭连接并手动重新连接:


$this->db->close();
$this->db->initialize();  

希望有所帮助

答案 1 :(得分:2)

您可能实际上想要扩展数据库类,然后实现自己的重新连接过程。你可以实现这样的东西:

...
if(!mysql_ping($this -> conn_id)) {
    $this -> _close();
    $this -> db_connect();
}
...

要知道如何扩展数据库类,请参阅以下链接:

Extending Database Drivers