我何时应该在PHP中关闭数据库连接?

我不像是一个PHP开发人员,但我必须使用它,我并不知道PHP如何在会话期间处理内存分配.

我正在开发一个请求HTTP身份验证的应用程序,一旦您登录,您可以通过一个漂亮的界面操作数据.
有人在另一篇文章中告诉我,我不应该在每次执行后关闭MysqL数据连接,但我不知道这个连接在使用这个应用程序时是如何保留内存的,因为在服务器端我不知道PHP保留了什么记忆与否.

所以我的问题是我应该使用单例连接到数据库并且永​​远不要关闭它(因为我永远不会知道应用程序何时没有使用.或者我应该支持我今天所做的事情:打开连接 – >执行语句 – >关闭连接.

PS:我正在使用MysqLi

编辑1:
我的应用程序是用MVC模式设计的意思:

|''''''''''|      |'''''''''''''|      |''''''''''''''|
| view.PHP |  ==> | control.PHP |  ==> | database.PHP |
|----------|      |_____________|      |______________|

该模式允许视图仅通过control.PHP与数据交互,然后control.PHP函数从database.PHP调用到SELECT或EDIT数据.你给我的解释,我应该说:

public function __destruct(){
    MysqL_close($this->connection);
}

在database.PHP中,但是当需要选择或修改数据时,该页面会被加载,因此它只会在短时间内执行,这意味着它仍然会在请求结束时关闭连接.

这给出了一个更精确的问题,即我应该在哪里提供您提供的代码的安静,或者我的模式在PHP中是否相关?

解决方法:

永远不要为每个查询创建新连接;您甚至不必手动关闭它.

只需在页面开头创建连接即可

看看:How do you efficiently connect to mysql in php without reconnecting on every query

你可以用这个:

public function __destruct()
{
   MysqL_close($this->connection);
}

页面关闭时会调用

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...