我已经编写了与数组绑定的代码。 我现在拥有的代码是:
$user_id = $_SESSION['user_id'];
$db = new mysqli("localhost", "username", "password", "database");
$stmt = $db -> prepare("SELECT aps FROM `scu_user-data` WHERE id=? LIMIT 1");
$stmt->bind_param('i', $user_id);
$stmt->execute();
$res = $stmt->get_result();
while ($row = $res->fetch_array(MYSQLI_ASSOC)) {
if ($res[0] == 0){
echo '<script type="text/javascript">';
echo 'window.location = "http://localhost/system/aps.php"';
echo '</script>';
} else {
echo " ";
}
}
$stmt->close();
我收到一条错误消息:
致命错误:未捕获错误:无法将mysqli_result类型的对象用作数组
答案 0 :(得分:1)
错误在这里:
if ($res[0] == 0)
$ res是一个结果集对象。大概您打算使用上一行中使用的变量$ row:
if ($row['aps'] == 0)
答案 1 :(得分:0)
通过使用MYSQLI_ASSOC
常量,您的代码将与mysqli_fetch_assoc()
相同,而MYSQLI_NUM
的行为将与mysqli_fetch_row()
函数相同,这是我认为的功能想要。
尝试使用MYSQLI_NUM
。
此外,请确保在尝试从查询中提取行之前检查查询是否已成功运行,将$res = $stmt->get_result();
更改为:
if(!$res = $stmt->get_result()){
die($db->error);
}