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