这就是错误所说的
致命错误:在第30行的C:\ xampp \ htdocs \ Grading \ logging.php中的非对象上调用成员函数fetch()
我不知道在那里写什么我在mysqli有点新,这里是我的代码
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$sql = $con->query("SELECT * FROM user WHERE username = '".$username."' ");
$row = $sql->fetch();
if ($username == $row['username'] and $password == $row['password'])
{
echo "<script>window.location.href='home.php'; </script>";
}
else
{
echo "<script> alert ('Invalid Username or Password'); window.location.href='login.php'; </script>";
}
?>
答案 0 :(得分:0)
首先,你的$ con变量是什么? 通过MySQLi猜测它正确的MySQL连接。所以,你执行了MySQLi库的方法 query()。但根据documentation of that method,您可以看到执行结果为false,true或mysql_result。
而且,更重要的是,mysqli_result 没有方法fetch()。 正如您在docs中看到的那样,fetch_all(),fetch_assoc()和fetch_array()函数可用。您可以使用它们而不是fetch()。
此外,fetch方法是类mysqli_stmt(MySQLi Statement)的方法。但MySQLi预处理语句可以通过$con&gt; prepare()调用检索,而不是使用$ con&gt; query()方法检索。