当前我想在用户登录到系统时从两个表中获取两个不同的数据。权限表是“用户”,“user_staff”和“user_group”。但是,当用户输入其用户名和密码,并提交提示“致命错误:调用第26行的C:\ xampp \ htdocs \ auditsystem \ index.php中的非对象上的成员函数fetch_array()”
下面是代码:
if($username!= "" && $password != "")
{
//INNER JOIN user_group_module_role ON user.user_group_module_role_id = user_group_module_role.id
$result = $db->query("SELECT * FROM user
INNER JOIN user_staff ON user.user_staff_id = user_staff.id
WHERE username = '$username' AND password = '$password'");
if($result->num_rows == 1)
{
$validate = $result->fetch_assoc();
$query1 = "SELECT * FROM usergroup WHERE id = $validate[user_group_id]";
$result1 = $db->query($query1);
$row1 = $result1->fetch_array();
//change here for the authority
$_SESSION['user_staff'] = $validate['displayname'];
$_SESSION['usergroup'] = $row1['user_group_type'];
echo "<script language='javascript'>window.location='panel.php'</script>";
}
else
{
echo "<script>alert('Sorry, wrong username and password please check.')</script>";
}
}
1)你必须在双引号内的'{}'中包装数组。 2)你想用单引号包装索引:'$ query1 =“SELECT * FROM usergroup WHERE id = {$ validate ['user_group_id']}”; – Twisty
您的第二个查询失败,并且由于您没有检查,所以'$ result1'为null/false,并且没有成员函数。 – Twisty
[mysqli - fetch \ _Array错误调用函数在非对象mysqli]上获取\ _array()的可能重复(http://stackoverflow.com/questions/14639965/mysqli-fetch-array-error-call - 对一个成员函数提取阵列在一个非目标) –