Php 为什么要使用mysqli_close()?

Php 为什么要使用mysqli_close()?,php,mysqli,Php,Mysqli,有什么理由我应该在查询后或脚本结束时关闭连接吗 做/不做的好处是什么?好处是,如果要进行长时间运行的处理,但已完成对数据库的查询,那么保持打开连接是没有意义的。保持用户会话打开(阻止其他请求)也是如此 这方面的一个例子可能是创建大型PDF报告。创建和写出文件可能需要20-30秒以上的时间,但您可以在第一秒钟内获得所需的所有数据 但是,通常您也可以自动执行(假设连接不是持久的)。连接(如果不是持久的)总是在脚本结束时关闭,因此,理论上,您不需要自己关闭它 尽管如此,如果PHP脚本需要花费大量时间来

有什么理由我应该在查询后或脚本结束时关闭连接吗


做/不做的好处是什么?

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

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

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

连接(如果不是持久的)总是在脚本结束时关闭,因此,理论上,您不需要自己关闭它

尽管如此,如果PHP脚本需要花费大量时间来执行,那么在不需要再对数据库执行任何请求时关闭连接是一个好主意——至少,如果长时间的计算是在查询之后完成的

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


我们自己经常不密切联系的原因是:

  • 我们通常不知道什么时候完成了所有的查询——对于由许多小“块”组成的页面尤其如此;其中每一个都是独立的,并且可以自己进行查询;那么,我们什么时候可以关闭连接
  • web页面的生成速度通常相当快,因此我们不需要关闭与DB的连接

如果您正在谈论PHP脚本,我可以建议您在问题中添加该标记吗?Dupe:和相关:每次您不关闭连接时,DBA都会杀死一只小猫。每次我不关闭连接时,PHP都会帮我完成工作:-p PHP拯救小猫;;事实上,我对由块组成的页面所说的是非常正确的:想想任何CMS,例如:什么时候知道应该关闭连接?在PHP代码执行结束时(而不是之前,因为某些“块”可能仍然需要执行一些SQL查询);;因此,手动关闭连接是非常无用的;;当然,当您生成一些需要花费时间且不执行任何数据库查询(如PDF或类似查询)的内容时除外。什么是持久连接<代码>mysqli(MYSQL_主机名、用户名、密码、数据库)是持久的吗?与mysql扩展不同,mysqli不提供单独的打开持久连接的功能。要打开持久连接,在连接时必须在主机名前加上p:。