什么时候应该关闭PHP中的数据库连接?
我一点也不像一个php开发人员,但我必须使用它,而且我不知道php在会话期间如何处理内存分配 我正在开发一个请求HTTP身份验证的应用程序,一旦登录,您就可以通过一个漂亮的界面操作数据。什么时候应该关闭PHP中的数据库连接?,php,mysql,mysqli,Php,Mysql,Mysqli,我一点也不像一个php开发人员,但我必须使用它,而且我不知道php在会话期间如何处理内存分配 我正在开发一个请求HTTP身份验证的应用程序,一旦登录,您就可以通过一个漂亮的界面操作数据。 有人在另一篇文章中告诉我,我不应该在每次执行后关闭mysql数据连接,但我不知道在使用这个应用程序期间,这个连接是如何保持在内存中的,因为在服务器端,我不知道PHP在内存中保留了什么 因此,我的问题是,我应该使用单例连接到db,而不关闭它(因为我永远不知道应用程序何时未被使用。或者我应该坚持我今天所做的:打开连
有人在另一篇文章中告诉我,我不应该在每次执行后关闭mysql数据连接,但我不知道在使用这个应用程序期间,这个连接是如何保持在内存中的,因为在服务器端,我不知道PHP在内存中保留了什么 因此,我的问题是,我应该使用单例连接到db,而不关闭它(因为我永远不知道应用程序何时未被使用。或者我应该坚持我今天所做的:打开连接-->执行语句-->关闭连接) PS:我正在使用mysqli 编辑1:
我的应用程序采用MVC模式设计,其含义如下:
|''''''''''| |'''''''''''''| |''''''''''''''|
| view.php | ==> | control.php | ==> | database.php |
|----------| |_____________| |______________|
该模式允许视图仅通过control.php
与数据交互,然后调用database.php中的函数来SELECT
或EDIT
数据。根据您给我的解释,我应该:
public function __destruct(){
mysql_close($this->connection);
}
在database.php
中,但是当需要选择或修改数据时,该页面会被加载,因此它只会执行很短的时间,这意味着它仍然会在请求结束时关闭连接
这就提出了一个更精确的问题:我应该把您提供的代码放在哪里,还是我的模式与PHP相关?永远不要为每个查询创建新的连接;您甚至不必手动关闭它 只需在页面的开头创建连接 看看: 您可以使用以下选项:
public function __destruct()
{
mysql_close($this->connection);
}
当页面关闭时,将从PHP的Mysqli调用它:
客户端进程可以重用客户端进程和数据库之间的连接,而不是多次创建和销毁。这减少了开销
但是不关闭连接会导致内存泄漏否?您可以在页面关闭时关闭连接,请参阅Post上的“我的编辑”,这是执行数据库管理的类的析构函数,请参阅:这是因为在MVC模式中,控件视图和模型(数据库)。在您的scheme视图中控制控件和模型。如果您以正确的方式编写MVC,问题将自动解决。问题是,我不使用object编写代码,因为我真的不知道如何编写,我没有时间转换应用程序,也没有时间了解它的工作原理。啊哈,好的,不,切换到OOP非常简单,很多p通过正确的设计,像这样的问题将自行解决:)呃,我知道,我认为我们在第一次使用PHP时都有那种“不好的感觉”。我最讨厌PHP的是它的松散类型方法。。。有时它似乎是用BASIC编程的:)