$ stmt-> fetch()有一些问题
我有一个名为$ row的变量,它由$ row ['id']和$ row ['name']组成。 在$ stmt-> fetch()循环中,我要将行追加到$ result数组。 但是,如果打印$ result数组,则它仅包含在最后一行之外。
这是我的代码:
function queryResult($sql, $params, $columNames) {
$result = [];
$row = [];
$bindVars = [];
for ($i = 0; $i < sizeof($columNames); $i++) {
$bindVars[] = &$row[$columNames[$i]];
}
$stmt = $this->query($sql, $params);
call_user_func_array([$stmt, 'bind_result'], $bindVars);
while ($stmt->fetch()) {
print_r($row);
echo '<br>';
array_push($result, $row);
print_r($result);
echo '<br><br>';
}
return $result;
}
这是结果:
Array ( [id] => 2 [name] => Test2 )
Array ( [0] => Array ( [id] => 2 [name] => Test2 ) )
Array ( [id] => 3 [name] => Test3 )
Array ( [0] => Array ( [id] => 3 [name] => Test3 ) [1] => Array ( [id] => 3 [name] => Test3 ) )
答案 0 :(得分:0)
在第14行中,我认为应该使用while($row=mysqli_fetch_array($stmt))
。