我多次遇到这个问题,我无法弄清楚它为什么会发生.当我构建如下所示的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)
并尝试循环遍历它们,页面似乎无限循环而不加载或返回错误.为什么第二个陈述不起作用?
mysql_query执行查询并返回mysql_fetch_array用于获取下一行的记录ID .当你像你尝试过的那样将它们链接在一起时,循环的每次迭代都while将执行查询,返回一个新的记录id并获取第一行.只要至少有一行,它最终会在无限循环中执行此操作.
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |