1
public function doesUserExist($u) {

    $this->dbConnect();

    mysql_select_db($this->database);

    $sUser = mysql_real_escape_string($u);

    $query = "SELECT username FROM $this->table WHERE username='$sUser'";
    $doesFieldExist = false;

    if (mysql_num_rows($query) > 0) {
        $doesFieldExist = true;
    }

    $this->dbDisconnect();

    return $doesFieldExist;

}

I get an error on this line (60)

if (mysql_num_rows($query) > 0) {

The error is:

Warning: mysql_num_rows() expects parameter 1 to be resource, string given in C:\Users\Tom\Dropbox\public_html\classes\database.class.php on line 60

With the query I'm using, mysql_num_rows($query) should return 1. I've googled and checked here, but can't see what I'm doing wrong.

0

3 Answers 3

4

You have not actually executed your query:

$query = "SELECT username FROM $this->table WHERE username='$sUser'";
$doesFieldExist = false;

// Execute the query with mysql_query()
$result = mysql_query($query);

// $result is a result resource that can be passed 
// to mysql_num_rows() unless the query failed and $result is FALSE
if ($result && mysql_num_rows($result) > 0) {
    $doesFieldExist = true;
}
Sign up to request clarification or add additional context in comments.

Comments

0

Actually you didn't executed query.

public function doesUserExist($u) {

    $this->dbConnect();

    mysql_select_db($this->database);

    $sUser = mysql_real_escape_string($u);

    $query = "SELECT username FROM $this->table WHERE username='$sUser'";
    $query = mysql_query($query);
    $doesFieldExist = false;

    if (mysql_num_rows($query) > 0) {
        $doesFieldExist = true;
    }

    $this->dbDisconnect();

    return $doesFieldExist;

}

Comments

0

You should use the mysql_query before getting the number of rows.

Follow the Link below: http://php.net/manual/en/function.mysql-num-rows.php

For example :

$query = "SELECT username FROM $this->table WHERE username='$sUser'";
$result = mysql_query($query);  
$num_rows = mysql_num_rows($result);  

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.