PHP的问题!mysql_free_result只能用一次?

mysql_free_result($a,$b,$c);

这样竟然不行?

变成
mysql_free_result($a);
mysql_free_result($b);
mysql_free_result($c);
还是不行...

请教mysql_free_result的正确使用方法.页面数据过多,实在太卡了~
我的代码是这样的.
$abc1=mysql_query("select count(0) as counts from abc where id='$wid'") or die("errr");
$abc1=mysql_fetch_array($J_count1);
$abc2=$abc1['counts'];
mysql_free_result($abc1);

比如你

$aa = mysql_query($sql);

//释放查询结果
mysql_free_result($aa);

定义和用法
mysql_free_result() 函数释放结果内存。

如果成功,则返回 true,如果失败,则返回 false。

语法
mysql_free_result(data)参数 描述
data 必需。要释放的结果标识符。该结果标识符是从 mysql_query() 返回的结果。
提示和注释
注释:mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放。
例子
<?php
$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db("test_db",$con);

$sql = "SELECT * from Person";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_row($result));

// 释放内存
mysql_free_result($result);

$sql = "SELECT * from Customers";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_row($result));

mysql_close($con);
?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-04
你下面这样的代码是错误的:
$abc1=mysql_query("select count(0) as counts from abc where id='$wid'") or die("errr");
$abc1=mysql_fetch_array($J_count1);
$abc2=$abc1['counts'];
mysql_free_result($abc1);

第一句mysql_query执行之后$abc1变量是一个查询结果的资源,以后可以mysql_free_result来释放它,但是你的第二句执行的mysql_fetch_array语句重复使用了$abc1,这以后$abc1已经是一个数组了,这时候丢失了以前的资源变量,你已经无法使用mysql_free_result了。

应该修改如下:

$abc1=mysql_query("select count(0) as counts from abc where id='$wid'") or die("errr");
$row1=mysql_fetch_array($J_count1);
$abc2=$abc1['counts'];
mysql_free_result($abc1);
第2个回答  2008-09-05
$abc1不是数据集,所以free失败。
$abc1,这种名字尽量取不相同的,

$sql=mysql_query("select count(0) as counts from abc where id='$wid'") or die("errr");
$re=mysql_fetch_array($sql);
$counts=$re['counts'];
mysql_free_result($re);
第3个回答  2008-09-07
深有同感,玩这个的朋友有时候为一个简单的符号能一晚上不休息,做梦还是满脑子代码。
... ...
$result=mysql_query($query)
... ...
相似回答