8

(如有必要,请道歉——我的第一个 Stack Overflow 问题。如果有人有建议,我很乐意修改它。我已经寻找答案,但恐怕我对术语的掌握不足以做出完整的搜索。)

我习惯于使用 mysql_fetch_array 从数据库中获取记录。当以这种方式获取记录时,mysql_num_rows 会给我行数。然而,在我当前的项目中,我使用的是 mysql_fetch_object。mysql_num_rows 似乎不适用于此函数,当我对查询结果进行“计数”时,我得到了预期的答案:1(一个对象)。

有没有办法“看到”对象并计算其中的元素?

4

4 回答 4

14

该函数mysql_num_rows适用于您的结果资源,而不是您的对象行。

例子

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$sql = "SELECT id, name FROM myTable";

$result = mysql_query($sql, $link);

$rowCount = mysql_num_rows($result);

while($row = mysql_fetch_object){
    echo "id: ".$row->id." name: ".$row->name."<BR>";
}
echo "total: ".$rowCount;
于 2011-01-03T20:47:34.460 回答
2

试试count( (array)$object )

于 2011-01-03T20:41:09.127 回答
0
<?php
mysql_connect("localhost", "user", "password");
mysql_select_db("database");

$result = mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM table");
$countQuery = mysql_query("SELECT found_rows() AS totalRows");
$rows = mysql_fetch_object($countQuery);
echo $rows->totalRows;
?>

我希望这很有用:)

于 2011-01-03T21:11:18.547 回答
0

如果您以程序方式使用它(即 mysql_fetch_object() 与 $result->fetch_object()),mysql_num_rows 的工作方式应该与使用 mysql_fetch_array() 时完全相同。你能发布一些示例代码吗?

于 2011-01-03T20:42:12.477 回答