mysqli_fetch_array只有一个元素

时间:2013-06-16 02:07:50

标签: php mysqli

我总是习惯将db元素放入一个while loop的数组中。 阅读文档我看到了将元素放入数组的其他方法,但是当我尝试使用这些系统时,我总是得到一个空数组。

E.g。在这种情况下我的错误在哪里?

这有效:

$data_db = $link->query("SELECT Name FROM TEST_TABLE");
while($data = mysqli_fetch_array($data_db)){
    $names[] = $data['Name'];
}

foreach($names as $n){
    echo $n;
}

这不起作用:

$data_db = $link->query("SELECT Name FROM TEST_TABLE");
$data = mysqli_fetch_array($data_db);

foreach($data['Name'] as $d){
    echo $d;
}

2 个答案:

答案 0 :(得分:4)

mysqli_fetch_*()个函数会返回一个 ROW 数据。它们不会返回整个结果集。 $data['Name']将是一个 STRING ,您试图将其作为数组循环,因此只能获取空值。

答案 1 :(得分:3)

这似乎是因为在第二个示例中,当您调用$data = mysqli_fetch_array($data_db);时,会提取一行。所以,你实际上是在尝试迭代$data['Name'],这没有任何意义。请注意,while循环意味着在每次迭代时都会执行语句,但在第二个示例中,您只执行$data = mysqli_fetch_array($data_db)一次。