If you are doing a SELECT COUNT(*)
, why are you using the rows()
method. Just look at the query results.
UPDATE: Added code
my @row = $Statement->fetchrow_array;
if ($row > 0)
doesn't always work when used with select statements.
$rv = $sth->rows;
Returns the number of rows affected by the last row affecting comm
+and, 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 exe
+cute (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 ma
+ny rows will be returned except by fetching them all. Some drivers wi
+ll 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 execu
+te a "SELECT COUNT(*) FROM ..." SQL statement with the same "..." as
+your query and then fetch the row count from that.