mysqli_num_rows()期望参数1为mysqli_result,布尔值为

时间:2014-04-12 13:32:21

标签: php sql phpmyadmin

已经看过其他答案但无法解决。星期一我有学校考试,他们希望我们建立一个基本的CMS(添加,编辑,删除页面,调整大小的图像)。我的编程知识是初学者,我不太了解OOP(PDO),设计模式,最佳实践以及类似的东西。

当我在phpMyAdmin中检查我的查询时,它看起来很好。在标题中包含连接。

<?php
    include('inc/header.php');
    if(isset($_POST["submit"])) {
        $username = trim($_POST["username"]);
        $password = trim($_POST["password"]);
        $password_secure = md5($password);

        if($username == "") {
            $error++;
            $_SESSION["loginerror"] = true;
            header("location: loginerror.php");
            exit;
        }

        if($password == "") {
            $error++;
            $_SESSION["loginerror"] = true;
            header("location: loginerror.php");
            exit;
        }

        if($username != "" && $password != "") {
            $sql = "SELECT * FROM user WHERE username = '".$username."' 
            AND password = '".$password_secure."'";
        }

        if(mysqli_num_rows($query == 1)) {
            $row = mysqli_fetch_array($query);
            $_SESSION['username'] = $row["username"];
            $_SESSION['firstname'] = $row["firstname"];
            $_SESSION['lastname'] = $row["lastname"];
            $_SESSION['login'] = true;
            header("location: user.php");
            exit;
        }

    } else {
        header("location: index.php");
        exit;
    }
?>

使用$_SERVER['REQUEST_METHOD'] == 'POST'而不是isset()检查POST请求是否也很聪明,并在查询中使用mysql_real_escape_string转义SQL?

由于

1 个答案:

答案 0 :(得分:2)

您忘记执行查询

$query = mysqli_query($sql);

$rowcount=mysqli_num_rows($query); 

然后

if($rowcount == 1){
 // do ur stuff
}