我正在通过 mysqli 准备好的语句从数据库中获取多行。这发生在一个单独的函数中,它应该返回一个数组,而数组的每个键都将保存一个 assoc。具有一个 DB 行的数组。有道理,对吧?
所以我到了这一点:
mysqli_stmt_bind_result($stmt,$row['employee_ID'],$row['name'],...);
$returnedarray = array();
while (mysqli_stmt_fetch($stmt))
{
$returnedarray[] = $row;
}
期望我将每一行推入返回的数组中。
但是一旦数组被返回 - 如果结果集中有 5 行,它将保持最后一行 5 次......
所以我尝试了这个:
$counter = 1;
while (mysqli_stmt_fetch($stmt))
{
echo '<br><b>GOING '. $counter++ .'</b><br>';
echo '<br>ROW: ';
print_r($row);
echo '<br>';
$returnedarray[] = $row;
echo '<br>RETURNED ARRAY: ';
print_r($returnedarray);
}
将回显的内容看起来有点像这样:
去 1
行:数组([employee_ID] => 2 [name] => robert ...)
返回数组:数组([0] => 数组([employee_ID] => 2 [name] => robert ...))
去 2
行:数组数组([employee_ID] => 3 [name] => john ...)
返回数组:数组 ( [0] => 数组 ( [employee_ID] => 3 [name] => john ... ) [1] => 数组 ( [employee_ID] => 3 [name] => john ... ) )
因此,即使 $row 每次都包含我想要的内容,并且我将它作为新索引推送到数组中,它实际上会用 $row 覆盖所有现有索引/索引。
为什么它不单独留下现有的索引?