mysql_num_rows дает ошибку "mysql_num_rows () ожидает, что параметр 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; } 

Я получаю сообщение об ошибке в этой строке (60)

 if (mysql_num_rows($query) > 0) { 

Ошибка:

 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 

С запросом, который я использую, mysql_num_rows ($ query) должен вернуть 1. Я googled и проверил здесь, но не вижу, что я делаю неправильно.

Вы действительно не выполнили свой запрос:

 $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; } 

На самом деле вы не выполнили запрос.

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

Вы должны использовать mysql_query, прежде чем получать количество строк.

Перейдите по ссылке ниже: http://php.net/manual/en/function.mysql-num-rows.php

Например :

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