mysql_num_rows给出布尔错误

时间:2014-05-29 08:39:21

标签: login boolean rows

我正在处理一个登录脚本,我正在尝试使用查询及其周围的所有内容。我稍微得到它,但下面的代码,它检查用户名和&人们想登录时的密码,不太合适。我收到一个错误:

警告:mysql_num_rows()期望参数1为资源,布局在 C:\ xampp \ htdocs \ mystagram \ logic \ login_validate.php 中给出 13

<?php

include('../includes/config.php');
include('../includes/database.php');

$username = mysql_escape_string($_POST['username']);
$password = mysql_escape_string($_POST['password']);
$submit = $_POST['submit_login'];

if (isset($submit)) {

    $loginquery = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'");
        if (mysql_num_rows($loginquery) > 0) {
            echo 'You are now logged in.';
            exit();
        } else {
            echo 'Wrong username or password.';
        }


}

?>

2 个答案:

答案 0 :(得分:1)

这意味着您的SQL语句中有错误。

可能你没有一个名为&#39; users&#39;或列'&#39;用户名&#39;或者密码&#39;不见了。

改变这个:

if (mysql_num_rows($loginquery) > 0) {

要:

if (mysql_num_rows($loginquery) == 1) {

并且不要在数据库中以明文形式保存您的密码。并使用mysqli:)

答案 1 :(得分:0)

you use mysql_escape_string() then '' it was problem. try this code,I hope it will work.

<?php

    include('../includes/config.php');
    include('../includes/database.php');

    $username = mysql_escape_string($_POST['username']);
    $password = mysql_escape_string($_POST['password']);
    $submit = $_POST['submit_login'];

    if (isset($submit)) {

        **$loginquery = mysql_query("SELECT * FROM users WHERE username=".$username." AND password=".$password);**
            if (mysql_num_rows($loginquery) > 0) {
                echo 'You are now logged in.';
                exit();
            } else {
                echo 'Wrong username or password.';
            }


    }

    ?>