Php 为什么一行mysql查询/获取数组语句不起作用?

Php 为什么一行mysql查询/获取数组语句不起作用?,php,mysql,Php,Mysql,我已经多次遇到这个问题,我不明白为什么会发生这种情况。当我构建如下所示的MySQL语句时,它可以正常工作: $sql=mysql_query("SELECT * FROM table WHERE id='$something'"); while($row=mysql_fetch_array($sql)){ $someVar=$row['whatever']; //and so on } 但当我将前两个陈述结合到以下内容时: while($row=mysql_fetch_

我已经多次遇到这个问题,我不明白为什么会发生这种情况。当我构建如下所示的MySQL语句时,它可以正常工作:

$sql=mysql_query("SELECT * FROM table WHERE id='$something'");
while($row=mysql_fetch_array($sql)){
    $someVar=$row['whatever'];
    //and so on
    }
但当我将前两个陈述结合到以下内容时:

while($row=mysql_fetch_array(mysql_query("SELECT * FROM table WHERE id='$something'")))
并尝试循环通过它们,页面似乎无限循环,没有加载或返回错误。为什么第二条语句不起作用?

执行查询并返回用于获取下一行的记录id。当您像您尝试的那样将它们链接在一起时,
while
循环的每次迭代都将执行查询,返回一个新的记录id并获取第一行。只要至少有一行,它就会以无限循环结束