Mysqli错误非对象

时间:2013-02-18 08:48:45

标签: php mysqli

这就是错误所说的

  

致命错误:在第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>";
}
?>

1 个答案:

答案 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()方法检索。