绑定参数数组php mysql

时间:2019-03-03 16:00:20

标签: php mysql

我已经编写了与数组绑定的代码。 我现在拥有的代码是:

$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类型的对象用作数组

2 个答案:

答案 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);
}