PHP mysql_close()和mysql_free_result() - 我应该在什么时候使用它们?

时间:2011-10-26 14:19:22

标签: php mysql

我一直在使用Dreamweaver来开发基于PHP和MySQL的网站,但由于它往往过于简单,我通常会编写自己的查询和PHP来处理结果。

在执行一个更复杂的页面后,我最多可以有5 SELECTsUPDATEs个,可能还有更多的循环等。

持久连接正在使用,我每个脚本只连接一次数据库。

我想知道的是,鉴于我只连接到MySQL一次,查询的数量/复杂性对MySQL连接有多大影响,我需要明确地调用我的脚本中有mysql_close()

还应该在什么时候开始使用mysql_free_result()(或者我应该使用它?)

我所关注的事物类型的伪示例:

connect to database;

aSelect;

do {
    anUpdate;
} while(select has rows);

anotherSelect;

anotherSelect;

anUpdate;

do {
    aSelect;
    anUpdate;
} while (anotherSelect has rows);

anotherUpdate;

aVeryBigSelect;

//end of file
//no mysql_free_result() or mysql_close() calls, should there be?

3 个答案:

答案 0 :(得分:3)

如果脚本运行的时间非常短,比如提供网页,那么就不要调用mysql_closemysql_free_result,因为PHP会关闭连接并自动释放内存网页执行结束。

另一方面,如果您要编写一个长时间运行的批处理脚本,进行数千次查询,最好拨打mysql_free_result

答案 1 :(得分:0)

您不必自己调用mysql_close(),在脚本完成时关闭连接。

如果查询返回大的结果集,则可以调用mysql_free_result(),这会导致内存不足。但根据经验,只有在你遇到问题时才会这样做。

答案 2 :(得分:-1)

当您不再需要数据库连接时,关闭它是很重要的。 (安全)

如果您不再需要查询结果并且内存不足,则应致电mysql_free_result();
例如,这可以在循环查询结果之后完成。