为什么要使用mysqli_close()?

时间:2009-08-29 14:57:55

标签: php mysql

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

做/不做有什么好处?

2 个答案:

答案 0 :(得分:24)

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

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

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


我们经常不关闭自己的连接的原因是:

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

答案 1 :(得分:5)

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

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

然而,通常你也可以自动地做(假设连接不是持久的)。