在PHP中的'mysql_fetch_row'中用'foreach'更改'while'

时间:2012-04-13 18:38:09

标签: php mysql foreach while-loop

是否可以在PHP while中更改foreach mysql_fetch_row

例如

$result = mysql_query("SELECT * FROM test");

while ($row = mysql_fetch_row($result)) {
    print_r($row);
}

这将从查询SELECT * FROM test获取所有记录(行)。

但是,如果使用foreach

foreach (mysql_fetch_row($result) as $row) {
    print_r($row);
}

这将仅从查询SELECT * FROM test中获取第一条记录(行)。

使用foreach时,是否可以通过mysql_fetch_row循环获取所有记录?

2 个答案:

答案 0 :(得分:3)

如果符合以下条件,您只能使用foreach

  • 您创建了一个实现ArrayAccessIterator
  • 的类
  • 您在数组中获取整个结果集,并将该数组与foreach一起使用。

可以使用for循环,但代码可能不够可读:

for ($row = mysql_fetch_row($result); $row !== false; $row = mysql_fetch_row($result)) {
    print_r($row);
}

答案 1 :(得分:1)

不,因为foreach需要一个数组。在这里,mysql_fetch_row()一次只返回一行。