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