CodeIgniter 数据库连接未关闭

我在CodeIgniter中建立了一个社交社区网站,现在获得了相当多的流量,托管公司已经开始抱怨并说数据库正在接收空连接以及未关闭的连接。

我不完全确定什么是空查询,或者最终如何发出,有什么想法吗?

我已经添加了额外的代码,以便在代码到达末尾时强制关闭连接,但显然这不起作用。

任何人都可以就从何处查找或开始调试此类问题提供任何建议吗?

谢谢

我的核心底部有以下内容MY_Controller

public function __destruct() {
    $this->db->close();
}

答案 1

我认为您正在从Codeigniter连接数据库中获取初始配置的问题。

在此页面上,您可以看到配置数组中的每个值:
https://www.codeigniter.com/user_guide/database/configuration.html

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "database_name";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
$db['default']['swap_pre'] = "";
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

这是一个基本的数组配置数据库,尝试将pconnect的变量设置为FALSE,当它打开时,系统不会关闭任何连接,并且它随时保持打开状态以进行新闻查询。

如果你像我说的那样将其设置为false,你的系统将继续完美运行,但是当他需要使用数据库时,codeigniter将关闭并打开连接。

在这里,您可以在codeigniter论坛内找到并发布一个对pconnect变量有问题的家伙,可能会对您有所帮助!http://codeigniter.com/forums/viewthread/177573/#842016


答案 2

Codeigniter 应该会自动关闭数据库连接,但您可以使用$this->db->close();

查看 http://codeigniter.com/user_guide/database/connecting.html


推荐