2009-01-29 175 views

回答

5

由于mysql_close()文件说:

使用mysql_close()通常没有必要 ,作为非持久性开放 链接在脚本执行的 结束自动关闭。见 也释放资源。

由于连接由PHP管理,所以不应该存在安全风险。

0

我不能说这个页面是否关闭了连接(这取决于管理它的任何东西),但总的来说,当你完成时关闭它是一个好主意,因为长时间打开它可能会导致同时处理的其他页面出现饥饿问题,这些页面要连接到相同的数据源。

+0

特别是如果应用程序正在使用连接池。 – 2009-01-29 16:31:21

1

PHP是假设是一个“无共享”体系结构。也就是说,所有资源都分配给每个请求,然后在请求完成后清理。所以像内存,文件句柄,套接字,数据库连接等资源应该被释放或关闭。

但是,您可以使用persistent database connections,它们未关闭,但会重新用于下一个请求。如果你这样做,就会有一些安全隐患。任何连接状态都由下一个PHP请求继承。因此,如果您的应用程序使用数据库用户定义的变量或临时表,或者甚至使用LAST_INSERT_ID(),则下一个PHP请求可能会看到它不应该看到的特权数据。

如果关闭数据库连接以避免这种情况发生,那么基本上会破坏持久连接的值。所以你不妨使用普通的数据库连接。