-1

标题说明了一切。我有以下代码:

public function getRows($table) {

    $result = mysql_query("SELECT COUNT(*) FROM `".$table."`");
    if (! $result) {
        throw new Exception(mysql_error().".  Query was:\n\n".$query."\n\nError number: ".mysql_errno() . ".Table = ".$table);
    }
    return $result;
}

似乎它应该是有史以来最简单的函数,但结果总是返回 8。

有任何想法吗?

谢谢,乔什

4

6 回答 6

2

您的函数返回一个mysql_query()函数结果,它不是您的 SQL 查询的结果。

mysql_fetch_assoc()你必须对mysql_*旧的 PHP 函数做一些事情。

PS:您现在应该使用 PDO,mysql_*已弃用,这只是一个提示;)

于 2013-07-31T10:14:07.833 回答
1

获取结果中的记录数

public function getRows($table) {

$result = mysql_query("SELECT COUNT(*) AS count FROM `".$table."`");
    if (! $result) {
        // throw exception
    }
    $row = mysql_fetch_assoc($result); 
    return $row['count'];
}

还。正如先前的响应者指出的那样,您需要停止使用功能mysql_*并开始使用mysqli_*or PDOPDO 的 PHP 文档

于 2013-07-31T10:20:56.043 回答
1

mysql_query返回一个资源: http: //php.net/manual/en/function.mysql-query.php

返回该值不会为您提供查询结果。你需要 mysql_fetch_array()。

一个工作示例:

public function getRows($table) {

    $result = mysql_query("SELECT COUNT(*) FROM `".$table."`");
    if (! $result) {
        throw new Exception(mysql_error().".  Query was:\n\n".$query."\n\nError number: ".mysql_errno() . ".Table = ".$table);
    }
    if($row = mysql_fetch_row($result)) {
        return $row[0];
    } 
    else {
        return false;
    }
}
于 2013-07-31T10:22:42.487 回答
0

尝试使用mysql_fetch_array() mysql_fetch_assoc()或获得结果mysql_fetch_object()

public function getRows($table) {

$result = mysql_query("SELECT COUNT(*) AS count FROM `".$table."`");
    if (! $result) {
        // throw exception
    }
    $row = mysql_fetch_array($result); 

    return $row['count'];
}

我希望它会有所帮助

于 2013-07-31T10:23:29.910 回答
0

您需要获取您的查询,而不是返回 mysql_query。

尝试这个

  public function getRows($table) {

$result = mysql_query("SELECT COUNT(*) as counts FROM `".$table."`");
if (! $result) {
    throw new Exception(mysql_error().".  Query was:\n\n".$query."\n\nError number: ".mysql_errno() . ".Table = ".$table);
}
$row =mysql_fetch_array($result) ;
return $row['counts'];
}
于 2013-07-31T10:23:37.043 回答
0

最好使用 mysql_num_rows 因为它不需要获取任何数据并且效率更高

public function getRows($table) {

$result = mysql_query("SELECT * FROM `".$table."`");
    if (! $result) {
        // throw exception
    }
    $rows = mysql_num_rows($result); 

    return $rows;
}
于 2013-07-31T12:17:48.603 回答