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

Zak*_*Zak 4 php mysql

我多次遇到这个问题,我无法弄清楚它为什么会发生.当我构建如下所示的MySQL语句时,它的工作正常:

$sql=mysql_query("SELECT * FROM table WHERE id='$something'");
while($row=mysql_fetch_array($sql)){
    $someVar=$row['whatever'];
    //and so on
    }
Run Code Online (Sandbox Code Playgroud)

但是当我将前两个语句组合成以下内容时:

while($row=mysql_fetch_array(mysql_query("SELECT * FROM table WHERE id='$something'")))
Run Code Online (Sandbox Code Playgroud)

并尝试循环遍历它们,页面似乎无限循环而不加载或返回错误.为什么第二个陈述不起作用?

mar*_*cog 6

mysql_query执行查询并返回mysql_fetch_array用于获取下一行的记录ID .当你像你尝试过的那样将它们链接在一起时,循环的每次迭代都while将执行查询,返回一个新的记录id并获取第一行.只要至少有一行,它最终会在无限循环中执行此操作.