致命错误:调用未定义方法mysqli_result::fetch()在C:wampwww…在第12行


Fatal error: Call to undefined method mysqli_result::fetch() in C:wampwww...... on line 12

我正在尝试测试我的登录页面,因此当我登录它应该重定向到我的帐户页面,但我得到这个错误

致命错误:调用未定义的方法mysqli_result::fetch()在C:'wamp'www...…第12行

下面是我的Login.php页面的源代码

<?php require ("connections/Connection.php"); ?>
<?php 
if(isset($_POST['Login_Button'])) {
    session_start();
    $Email = $_POST['Email'];
    $Password = $_POST['Password'];
$result = $Conn->query("Select UserID FROM users WHERE Email='$Email' AND Password='$Password'");
    while ($num_rows = $result->fetch(MYSQLI_BOTH));
{
session_start();
    $_SESSION["UserID"] = $num_rows['UserID'];
        header('Location: Account.php');
    }
}
?>
<!doctype html>
<html>
<head>
<link href="assets/css/Master.css" rel="stylesheet" type="text/css" />
<link href="assets/css/Menu.css" rel="stylesheet" type="text/css" />
<meta charset="utf-8">
<title>Template</title>
</head>
<body>
<div class="Container">
    <div class="Header"></div>
    <div class="Menu">
        <div id="Menu">
            <nav>
                <ul class="cssmenu">
                    <li><a href="#">Register</a></li>
                    <li><a href="#">LogIn</a></li>
                </ul>
            </nav>
        </div> 
</div>
  <div class="LeftBody"></div>
    <div class="RightBody">
            <form action="" method="post" name="LoginForm" id="LoginForm">
                <div class="FormElement"> <input name="Email" type="email" required="required" class="TField" id="Email" placeholder="Email"> </div>
                <div class="FormElement"> <input name="Password" type="password" required="required" class="TField" id="Password" placeholder="Password"> </div>                
                <div class="FormElement"> <input name="Login_Button" type="submit" class="button" id="Login_Button" value="Login"> </div>
      </form>
    </div>
    <div class="Footer"></div>
</div>
</body>
<标题>

这是我的connection.php (Mysqli连接代码)

<?php 
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dberror1 = "Could Not Connect to Your Database";
$dberror2 = "Could Not Find Your Table";
$Conn = mysqli_connect($dbhost, $dbuser, $dbpass) or die ($dberror1);
$Select_db = mysqli_select_db($Conn, 'users') or die ($dberror2);
$query = mysqli_query($Conn, "Select * FROM users");
$num_rows = mysqli_num_rows($query);
if($num_rows != 0){
while ($fetch = mysqli_fetch_assoc($query)){
echo $fetch['UserID'];
}
}
?>

有人能帮忙吗?

SQL查询中缺少逗号:

$result = $Conn->query("Select * FROM users WHERE
Email='$Email' AND Password='$Password");
应:

$result = $Conn->query("Select * FROM users WHERE
Email='$Email' AND Password='$Password'");

因为这个查询失败,$resultfalse,这意味着fetch()也失败。一般来说,您应该在继续之前检查$result是否有效。

还考虑转义电子邮件和密码,如果你不希望Bobby Table破坏你的数据库:)