mysql_num_rows给出错误“mysql_num_rows()期望参数1是资源”

时间:2012-03-03 18:43:27

标签: php mysql

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上搜索并检查了,但看不出我做错了什么。

3 个答案:

答案 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;

}