Generally the "rows" method is unreliable - here's a section from
'perldoc DBI':

"rows"
      $rv = $sth->rows;

    Returns the number of rows affected by the last row affecting
    command, or -1 if the number of rows is not known or not
available.

    Generally, you can only rely on a row count after a *non*-"SELECT"
    "execute" (for some specific operations like "UPDATE" and
"DELETE"),
    or after fetching all the rows of a "SELECT" statement.

    For "SELECT" statements, it is generally not possible to know how
    many rows will be returned except by fetching them all. Some
drivers
    will return the number of rows the application has fetched so far,
    but others may return -1 until all rows have been fetched. So use
of
    the "rows" method or $DBI::rows with "SELECT" statements is not
    recommended.

    One alternative method to get a row count for a "SELECT" is to
    execute a "SELECT COUNT(*) FROM ..." SQL statement with the same
    "..." as your query and then fetch the row count from that.

-----------------------

If you are fetching all the rows anyone one by one, why not just count
them as you go?

HTH.

Hardy Merrill

>>> Zhiliang Hu <[EMAIL PROTECTED]> 09/12/04 11:40AM >>>

Case:
When I used $query_a->fetchrow_array
I use it again in $query_a->rows to count number or rows.

However, when I used $query_a->fetchrow_arrayref
$query_a->rows returns nothing - it seems $query_a is nullified.

Is it normal or due to my other problem?

Thanks in advance!

Zhiliang

Reply via email to