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.我在Google上搜索并检查了,但看不出我做错了什么。
答案 0 :(得分:4)
您实际上没有执行过您的查询:
$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;
}
答案 1 :(得分:0)
在获取行数之前,您应该使用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);
答案 2 :(得分:0)
实际上你没有执行查询。
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;
}