为什么使用 mysqli_close()?

2022-08-30 23:07:36

有什么理由在查询后或在脚本结束时关闭连接?

做/不做有什么好处?


答案 1

连接(如果不是持久的)总是在脚本末尾关闭,因此,从理论上讲,您不需要自己关闭它。

不过,如果你的PHP脚本需要花费大量时间来执行,那么当你不再需要对数据库做任何请求时,最好关闭连接 -- 至少,如果长时间的计算是在查询之后完成的。

如果您的应用程序部署在共享主机上,则尤其如此:您的用户帐户通常只能同时打开几个连接。(在共享主机上,同时打开的连接数量可能非常少;在私人服务器上通常更大)。


我们经常不关闭自己联系的原因是:

  • 我们通常并不真正知道何时完成了所有查询 - 对于由许多小“块”组成的页面尤其如此 ;其中每一个都独立于其他的,并且可以自己进行查询 ;那么,我们什么时候可以关闭连接?
  • 网页的生成速度通常非常快,因此我们并不真正关心关闭与DB的连接。

答案 2

好处是,如果您要执行长时间运行的处理,但已完成对数据库的查询,那么保持打开连接是没有意义的。保持用户会话处于打开状态(这会阻止其他请求)也是如此。

这方面的一个示例可能是创建大型 PDF 报表。这可能需要 20-30 多秒来创建和写出文件,但您可以在第一秒内获得所需的所有数据。

但是,通常您也可以自动执行此操作(假设连接不是持久的)。


推荐