user3613655
user3613655

Reputation: 35

mysql_num_rows gives boolean error

I'm working on a login script currently and I'm trying to get comfortable with query's and all those things around it. I'm getting it slightly, but the code below, which checks the username & password when people want to login, doesn't quite work. I get an error:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\mystagram\logic\login_validate.php on line 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.';
        }


}

?>

Upvotes: 0

Views: 53

Answers (2)

Bipul Khan
Bipul Khan

Reputation: 707

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.';
            }


    }

    ?>

Upvotes: 0

Tix
Tix

Reputation: 11

This means that you have an error in your SQL Statement.

Probably you dont have a table named 'users' or the Column 'username' or 'password' is missing.

Change this:

if (mysql_num_rows($loginquery) > 0) {

To:

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

And don't save your password in plaintext in the database. And use mysqli :)

Upvotes: 1

Related Questions