0

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

例如,在这种情况下,我的错误在哪里?

这有效:

$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;
}
4

2 回答 2

4

mysqli_fetch_*()函数返回单行数据。它们不会返回整个结果集。$data['Name']将是一个单一的STRING,您试图将其作为一个数组循环,因此除了空值之外什么也没有。

于 2013-06-16T02:12:26.203 回答
3

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

于 2013-06-16T02:13:54.487 回答