CodeIgniter -仅在有查询要运行时连接到数据库


CodeIgniter - only connect to database if there is a query to run

此刻,我在自动加载中加载数据库类,自动创建到mysql的连接。如果没有查询,它仍然会创建一个连接。

对于性能,我只想连接到mysql,如果查询已经运行。

实现这一目标的最佳方法是什么?

我正在考虑编写一个模型函数,所有查询都通过它检测数据库是否已连接,并且在运行$this->db->query()之前简单地调用$this->load->database()

这样做的问题是,我将不得不改变我所有的$this->db->query()引用在我的代码,这是一个痛苦。

理想情况下,我想扩展$this->db->query()函数来支持这一点。

任何想法?

您可以修改数据库配置的autoinit属性

$db['mydb']['autoinit'] = false;

这将导致您的数据库类在实例化时不初始化(包括连接到服务器),它将在第一次查询发生时发生。

查看数据库配置页面