使用mysql_fetch_array,我可以轻松计算返回的行数。我可以用mysql_fetch_object做类似的事情吗?

时间:2011-01-03 20:34:47

标签: php mysql oop mysql-num-rows

(如果有必要道歉 - 我的第一个Stack Overflow问题。如果有人有建议,我会很乐意修改它。我已经找到了答案,但我担心我对术语的掌握不够好做一个完整的搜索。)

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

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

4 个答案:

答案 0 :(得分:11)

函数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;

答案 1 :(得分:2)

尝试count( (array)$object )

答案 2 :(得分:0)

如果你在程序风格中使用它(即mysql_fetch_object()与$ result-&gt; fetch_object()),mysql_num_rows应该与使用mysql_fetch_array()时的工作方式完全相同。你能发一些示例代码吗?

答案 3 :(得分: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;
?>

我希望这很有用:)