Mysqli_fetch_array不适用于forearch循环

时间:2016-09-23 06:48:48

标签: php mysqli fetch

我正在尝试获取数据并通过foreach循环显示它但它不起作用给出参数错误但是当我尝试使用while循环时它工作正常。所以我的问题是为什么我无法使用mysqli_fetch_array获取数据,因为只有while loop

// While
while($row = mysqli_fetch_row($result))
{
    var_dump($row); echo "<hr />";  
}

// Foreach
foreach(mysqli_fetch_array($result) as $row)
{
    var_dump($row); echo "<hr />";
}

2 个答案:

答案 0 :(得分:1)

你不能直接使用foreach for mysqli_fetch_array。 Foreach是一个用于存在数组的循环,用于遍历每个项目

您可以使用如下

$result = array();
    while($row = mysqli_fetch_array($result)) {
       $result[] = $row;
    }

    foreach($result as $row) {
        var_dump($row);
        echo "<hr />";
    }

答案 1 :(得分:0)

因为mysqli_fetch_array来自它的名称 - 将结果的一行作为数组获取。

所以,foreach(mysqli_fetch_array($result) as $row)表示

  

获取一行并遍历此行。

虽然while($row = mysqli_fetch_row($result))表示

  

获取行直到无法获取任何内容。   当没有什么可以获取while时 - 条件为false并且循环中断。

有关while-loopforeach-loop

的信息