The last two points are really important. The final point doubly so. (But you need to learn basic SQL for that.)
(I'll also add that bound columns are even more efficient than arrays: $sth->bind_columns(\$col1, \$col2, \$col3); while ($sth->fetch) { print "$col1\n" })