我一直在使用Dreamweaver来开发基于PHP和MySQL的网站,但由于它往往过于简单,我通常会编写自己的查询和PHP来处理结果。
在执行一个更复杂的页面后,我最多可以有5 SELECTs
和UPDATEs
个,可能还有更多的循环等。
持久连接不正在使用,我每个脚本只连接一次数据库。
我想知道的是,鉴于我只连接到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?
答案 0 :(得分:3)
如果脚本运行的时间非常短,比如提供网页,那么就不要调用mysql_close
和mysql_free_result
,因为PHP会关闭连接并自动释放内存网页执行结束。
另一方面,如果您要编写一个长时间运行的批处理脚本,进行数千次查询,最好拨打mysql_free_result
。
答案 1 :(得分:0)
您不必自己调用mysql_close(),在脚本完成时关闭连接。
如果查询返回大的结果集,则可以调用mysql_free_result(),这会导致内存不足。但根据经验,只有在你遇到问题时才会这样做。
答案 2 :(得分:-1)
当您不再需要数据库连接时,关闭它是很重要的。 (安全)
如果您不再需要查询结果并且内存不足,则应致电mysql_free_result();
例如,这可以在循环查询结果之后完成。