I don't see any problem with that code if only you change the plural form in the comments to singular. You fetch there only one row, not an array of rows, but a list representing a row.
From the DBI documentation:
If there are no more rows or if an error occurs, then
"fetchrow_array" returns an empty list. You should
check "$sth->err" afterwards (or use the "RaiseError"
attribute) to discover if the empty list returned was
due to an error.
Restating it: the empty list in result means no rows were selected or there was an error.