1

这段代码对我有用。

$result = mysql_query("select * from tbl_rating limit 1 ;");

while($row = mysql_fetch_array($result)){

   echo $row["NameA"];

}

但是,此代码不起作用。谁能指出我的错误?谢谢。

$result = mysql_query("create temporary table ub_rank as 
select similar.NameA,count(*) rank
from tbl_rating target 
join tbl_rating similar on target.NameB= similar.NameB and target.NameA != similar.NameA and target.Rate= similar.Rate 
where target.NameA = 'tutorA'
group by similar.NameA;

select * from ub_rank limit 1 ;");

while($row = mysql_fetch_array($result)){

    echo $row["NameA"];

  }

错误信息:

警告:mysql_fetch_array():提供的参数不是有效的 MySQL 结果资源

但是,我想知道为什么我可以在具有相同结构的第一个代码中获得值?!

4

2 回答 2

1

mysql_query()一次不支持多个查询。您需要将查询分成两个单独的调用:

mysql_query("create temporary table ub_rank as 
  select similar.NameA,count(*) rank
  from tbl_rating target 
  join tbl_rating similar on target.NameB= similar.NameB and target.NameA !=  similar.NameA and target.Rate= similar.Rate 
  where target.NameA = 'tutorA'
  group by similar.NameA
");
$result = mysql_query("select * from ub_rank limit 1 ;");

while($row = mysql_fetch_array($result)){
  echo $row["NameA"];
}
于 2013-03-25T23:56:49.927 回答
1

mysql_query(),因为它已被弃用,所以无论如何你都不应该使用它,它不允许你在这样的单个调用中执行多个查询。从技术上讲,有一种骇人听闻的方法可以伪造它来执行多个查询,但它只会提供第一个结果集。

您需要单独执行这些查询。或者,如果您转换为 using mysqli,则可以使用mysqli_multi_query,但这实际上仅适用于不需要结果集的情况。

于 2013-03-25T23:57:44.790 回答