致命错误:在第12行的C:\ wamp \ www \ ...中调用未定义的方法mysqli_result :: fetch()[复制]

问题描述 投票:-3回答:1

这个问题在这里已有答案:

我正在尝试测试我的登录页面,因此当我登录时应重定向到我的帐户页面,但是我收到此错误

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

这是我的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>

Here is my connection.php (Mysqli connect code)

<?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'];
}
}

?>

有人可以帮忙吗?

php sql mysqli boolean fetch
1个回答
1
投票

您在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破坏你的数据库,也可以考虑转发电子邮件和密码:)

© www.soinside.com 2019 - 2024. All rights reserved.