php - 不断收到“未捕获的错误:无法使用 mysqli_result 类型的对象作为数组”
问题描述
我一直试图找出如何在我的登录系统中解决这个问题,但它一直在$result失败,试图将其转换为数组会导致我的登录失败。
if (isset($_POST['log'])) {
$username = mysqli_real_escape_string($dbcon, $_POST['username']);
$password = mysqli_real_escape_string($dbcon, $_POST['password']);
$sql = "SELECT * FROM admin WHERE username = '$username'";
$result = mysqli_query($dbcon, $sql);
$rows = mysqli_num_rows($result);
if ($rows == 1 && password_verify($password, $result['password'])) {
$_SESSION['username'] = $username;
header("location: admin.php");
} else {
echo "Incorrect details!";
}
}
解决方案
您试图在不获取结果的情况下计算结果。试试下面:
改变
$result = mysqli_query($dbcon, $sql);
至
$result = mysqli_fetch_all(mysqli_query($dbcon, $sql), MYSQLI_ASSOC);
推荐阅读
- javascript - 我想将大写单词转换为小写,将小写转换为大写,但我遇到了问题
- laravel - 没有获取数据透视表的 laravel id
- oracle - 用于学习的简单存储过程
- javascript - react-hook-form 在自定义选择框输入中不起作用
- java - Android Java:使用颜色动画突出显示新的 ListView-Items
- reactjs - 将返回类型添加到打字稿中的签名
- android - 如何在 MutableStateFlow 中初始化密封类
- javascript - Js for循环更改字符串-它怎么知道?
- reactjs - 在响应之前响应 websocket 消息
- reactjs - 如何在 react-leaflet 中添加自己的 Tilelayer?