Do you have the wrong code on your pad? I couldn't find any user of DBI let alone fetchrow.... Let me know if i'm just way off base here. Either way i would check the query that you are trying to do a fetchrow() on and make sure that you have called execute on it before you try to fetchrows. selectrow_hashref() and selectall_hashref() just automate the process of prepareing, executing and fetching the rows. They normaly make very nice alternatives so that it all happens in one call, but i am sure there are some cases where fetching one record at a time is better.