如果MySQL数据库没有关闭会怎么样?

时间:2010-06-02 13:20:44

标签: php mysql

如果MySQL数据库没有关闭会怎么样?我们怎么知道它是否正确关闭了?

我有一个页面,页面上有11个表。所以我做的是在脚本启动之前在页面顶部打开数据库并关闭脚本(PHP)结束的地方...

结尾是mysql_close($ db); ...这是否公平还是我只需要给mysql_close();

2 个答案:

答案 0 :(得分:3)

我无法确定所有服务器平台上的所有PHP / Mysql版本是否都采用相同的方式。对于到数据库的tcp连接 - 除非你调用mysql_close($ db),你将有一个悬空的tcp连接,只是坐在那里等待脚本结束后半分钟使用。然后它就会自行消失。

我不能说这是PHP的垃圾收集是否需要整整30秒才能完成,或者如果tcp连接设置为在30秒后自行调用,则一旦调用connect即可。

Mysql_close($ db)会立即杀死tcp连接。所以,是的,我会说你的脚本不再需要数据库连接后,请立即调用mysql_close($ db)。

答案 1 :(得分:-1)

在脚本结尾处关闭连接没有意义,因为脚本终止时会为您完成。你应该真正明确地调用close函数的唯一一次是你是在运行一个守护进程还是其他东西,并且不希望在整个运行长度上保持连接。

PDO被认为是PHP的现代数据库访问库(你真的应该使用它而不是mysql_*函数,但这是另一个故事)甚至 没有关闭功能,只是为了把重点放在家里。