我不知道男人们有什么问题。请帮忙。这里给出了这样的错误:
mysqli_fetch_array()要求参数1为mysqli_result,第8行的C:\ xampp \ htdocs \ test \ session1.php中给出布尔值
<?php
error_reporting(E_ALL);
require 'db.php';
$username = $_SESSION['username'];
$sql = "SELECT isadmin FROM user WHERE username='$username'";
$result = mysqli_query($con,$sql);
$admin = mysqli_fetch_array($result);
$_SESSION['admin'] = $admin['admin'];
if ($_SESSION['admin'] == 1) {
echo "Welcome Admin";
}else{
echo "Normal User";
}
?>
答案 0 :(得分:0)
之所以如此,是因为您的查询中存在一些错误,并且它正在返回false
。
尝试检查$username
是否为空并且查询中引用的列是否正确。
并且您的查询构建不是正确的方法,而是应该在查询中传递参数,这样可以使其免于sql injection
请参阅此链接以获取更多信息:parameters in MySQLi
答案 1 :(得分:0)
针对管理问题尝试以下操作
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
如果你想用['admin']访问数组,你需要定义模式然后你需要告诉mysqli_fetch_aaray返回一个关联数组
答案 2 :(得分:0)
查看您要选择的列:
SELECT isadmin
^^^^^^^
然后您尝试使用/获取admin
列。
$admin['admin']
^^^^^
其中一个是不正确的,他们需要匹配并且不清楚哪个列名是正确的,isadmin
或admin
。
最有可能的是:
$admin['isadmin']
在看到您发布的错误消息后:(我可能会添加,此答案在发布之前已发布)。
未定义的索引:admin
并基于您在问题中发布的内容。
如果admin
列(也)存在,那么您需要在SELECT中添加它,但这似乎不是这种情况。
基本上,您的查询失败,您需要检查查询中的错误。