我没有收到Mysql错误,但查询无效

时间:2016-11-01 00:33:38

标签: php mysql sql phpmyadmin

我正在为PHP创建一个简单的登录脚本,但我没有收到错误或其他任何内容,但此查询因某些原因无效。这从来没有发生在我身上,我现在感到沮丧。

这是在php_classes文件中:

    <?php

    //Database Connection
    $database_host = "localhost";
    $database_user = "root";
    $database_pass = "**PASSWORD**";
    $database_name = "XoticSite";

    $database_connection = mysqli_connect($database_host,                                                          $database_user, $database_pass, $database_name);
    if($database_connection){
    echo("Connection Works!!! <br />");
    }






   //userclass
   class User
    {



public function __construct()
{
    #global vars

    $username = null;
    $password = null;
    $fname = null;
    $lname = null;
    $email = null;
    $privilege = null;
    $profilePath = null;
    $trys = 0;

    #*******#
}
public function checkLogin($db){
    $userQuery = mysqli_query($db, "SELECT * FROM `Users` WHERE
                            `username`='$username' && `password`='$password' LIMIT 1") or die("MYSQL ERROR");
    if(mysqli_num_rows($userQuerry) == 1){
        $userArray = mysqli_fetch_array($userQuery);

        $fname = $userArray['fname'];
        $lname = $userArray['lname'];
        $email = $userArray['email'];
        $ip = $userArray['ip'];
        $privilege = $userArray['privilege'];
        $profile = $userArray['profile'];

        return true;
    }
    else{
        return false;
    }


}
public function setData($u, $p){
    $username = $u;
    $password = $p;
    echo $username . $password;
}
public function getData($x){
    if($x == 1){
        return $username;
    }
    if($x == 2){
        return $password;
    }
    if($x == 3){
        return $trys;
    } else{
        return false;
      }
     }
    }

    //Client
    if(!isset($_SESSION['ClientUser'])){
        session_start();
        echo "Created User";
        $_SESSION['ClientUser'] = new User;
    }
    ?>

这是test.php类:

    <?php
    include_once 'php_includes/php_classes.php';

    $_SESSION['ClientUser']->setData("username", "12345");
    if($_SESSION['ClientUser']->checkLogin($database_connection)){
        echo "Login Success";
    } else{
        echo "Login Fail";
        echo $_SESSION['ClientUser']->username;
    }
?>

<html lang='en'>

    <head>
        <title>Test</title>
        <meta charset="UTF-8">
        <link rel="stylesheet" type="text/css" href="style.css">

        <script type="text/javascript">

        </script>
    </head>
    <body>
        <div id="mainWrapper">
            <?php 
                include_once("php_templates/header.php");
            ?>
            <div id="body">

            </div>
            <?php
                include_once("php_templates/footer.php");
            ?>
        </div>
    </body>

</html>

每当我运行测试时,我总是会遇到登录失败,因为我在数据库中拥有该用户名和密码,所以不会发生这种情况:

Picture of the Table in the Database

我在LAMP上运行它,特别是Ubuntu 15.10

1 个答案:

答案 0 :(得分:0)

这一行错字:if(mysqli_num_rows($userQuerry) == 1){?应为$userQuery