我不像是一个php开发人员但是我必须使用它而我并不知道PHP如何在会话期间处理内存分配。
我正在开发一个请求HTTP身份验证的应用程序,一旦您登录,您可以通过一个漂亮的界面操作数据。
有人在另一篇文章中告诉我,我不应该在每次执行后关闭mysql数据连接,但我不知道这个连接在使用这个应用程序时是如何保留内存的,因为在服务器端我不知道PHP保留了什么记忆与否。
所以我的问题是我应该使用单例连接到数据库并且永远不要关闭它(因为我永远不知道应用程序何时没有使用。或者我应该支持我今天所做的事情:打开连接 - &gt ;执行语句 - >关闭连接。
PS:我正在使用mysqli
编辑1 :
我的应用程序是使用MVC模式设计的意思:
|''''''''''| |'''''''''''''| |''''''''''''''|
| view.php | ==> | control.php | ==> | database.php |
|----------| |_____________| |______________|
该模式允许视图仅通过control.php
与数据交互,SELECT
然后将函数从database.php调用到EDIT
或public function __destruct(){
mysql_close($this->connection);
}
数据。你给我的解释,我应该说:
database.php
在{{1}}内,但是当需要选择或修改数据时,该页面会加载,因此它只会在短时间内执行,这意味着它仍会在请求结束时关闭连接。
这给出了一个更精确的问题,即我应该在哪里提供您提供的代码的安静性,或者我的模式是否与PHP相关?
答案 0 :(得分:10)
永远不要为每个查询创建新连接;您甚至不必手动关闭它。
只需在页面开头创建连接
查看:How do you efficiently connect to mysql in php without reconnecting on every query
你可以用这个:
public function __destruct()
{
mysql_close($this->connection);
}
页面关闭时会调用它
答案 1 :(得分:2)
来自PHP的Mysqli documentation:
客户端进程和数据库之间的连接可以由客户端进程重用,而不是多次创建和销毁。这减少了开销......