http://www.perlmonks.org?node_id=1027799


in reply to Problem with DBD::CSV

As choroba accurately points out, by missing quotes around Big, you are telling the SQL engine to return where the values in the columns named size and Big match, not where the value in column size is Big. That SQL would look like
SELECT animal FROM animals WHERE size = 'Big'
However, the better solution here is to use Placeholders and Bind Values. This way, the SQL engine handles the quoting and escaping for you, so you don't have to worry about what you are feeding it.
my $sth = $dbh->prepare(qq{ SELECT animal FROM animals WHERE size = ? }); $sth->execute('Big') or die "Cannot execute: " . $sth->errstr();

#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.