我试图从我的数据库表tbl_newpage
获取结果,但它会抛出错误。我不知道为什么会抛出错误
以下一行
$page = $mysqli->real_escape_string($_GET['page']);
$result=array();
if($stmt = $mysqli->prepare("select * from tbl_newpage where name=?")){
$stmt->bind_param("s", $page);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_array()){
$result[] = array($row); //This is where the error appears
echo "hello ";print_r($row);die();
}
$objSmarty->assign("result", $result);
}
引发错误
致命错误:无法在第22行的/var/www/html/examplesite/phpfile.php
中使用mysqli_result类型的对象作为数组
答案 0 :(得分:3)
您对$result
的结果以及您正在获取的值数组使用相同的变量$stmt->get_result()
。所以在循环的第二次迭代中,当它完成时
$row = $result->fetch_array()
$result
不再包含mysqli
结果,它包含数组,您无法在数组上调用fetch_array()
。为它们使用不同的变量名称。
$output = array();
while ($row = $result->fetch_array()) {
$output[] = $row;
}
$objSmarty->assign("result", $output);
此外,$row
已经是一个数组,在将其推送到$output
数组之前,您可能不希望将其嵌套在另一个数组中。
答案 1 :(得分:2)
尝试将最终result
更改为finalResult
$page = $mysqli->real_escape_string($_GET['page']);
$finalResult=array();
if($stmt = $mysqli->prepare("select * from tbl_newpage where name=?")){
$stmt->bind_param("s", $page);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_array()){
$finalResult[] = array($row);
echo "hello ";print_r($row);die();
}
$objSmarty->assign("result", $finalResult);
}