关于php中释放资源mysql_free_result函数,释放资源是什么意思,是不是把mysql_query结果集中的值清空?

$sql="select count(id) from emp";
$res=mysql_query($sql);
if($row=mysql_fetch_row($res)){
$pageCount=ceil($row[0]/$pageSize);
}
mysql_free_result($res);
mysql_close();
return $pageCount;
$res资源释放了,return返回值,$pageCount还有值吗,

mysql查询结果句柄会消耗内存。为了节约内存,在使用完毕后可以手动释放。不过一般情况下不需要这么做,程序结束会自动释放的。


这里的$pageCount变量存在。因为释放mysql句柄$res和$pageCount无关。

以下方法可以释放$pageCount:

unset($pageCount);

望采纳,谢谢支持!

追问

$pageCount变量的值为什么还会存在,$pageCount变量的值不是释放了吗?

追答

$pageCount是你自己定义的变量,和句柄$res没有关系。
只会释放资源$res,不会影响到其他变量。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-26
你这么理解吧,释放后的资源,就是不能再次mysql_fetch_row,除非重新mysql_query这个变量。

释放具体的操作细节,主要是PHP的MYSQL扩展代码内部,释放一些申请的变量、空间、指针等,对你这个变量本身没什么变化,对MYSQL数据库里面的数据也没有影响。
第2个回答  2013-07-26
数据库取出的结果集是存放在内存上的,释放资源,就是在你不使用该内存上的数据的时候,告诉电脑,收回分配给这个资源的内存,数据也就被销毁咯,你的$pagecount在释放后还是有值的,他不是资源的一部分,一般只有 在结果集非常大的时候,才调用此函数释放,因为脚本结束后,所有的资源都会自动释放
第3个回答  2013-07-26
mysql_free_result 可以使用。不会 影响$pageCount的结果。这个是释放mysql资源的。

这个在php用的少。在c/c++加mysql中是必不可少的函数。这是mysql.h的api。在php中可以不使用。

另外,mysql_close(这里是资源链接).希望可以帮到你
第4个回答  2013-07-26
mysql_free_result(data)

参数描述

data 必需。要释放的结果标识符。该结果标识符是从 mysql_query() 返回的结果。

是把结果集的返回结果清空
相似回答