我总是习惯将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;
}
答案 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)
一次。