首页 > 解决方案 > 不断收到“未捕获的错误:无法使用 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!";
        }
    }

标签: phpmysqlmysqli

解决方案


您试图在不获取结果的情况下计算结果。试试下面:

改变

$result = mysqli_query($dbcon, $sql);

$result = mysqli_fetch_all(mysqli_query($dbcon, $sql), MYSQLI_ASSOC);

推荐阅读