Unfortunately, there's no real help for manually $dbh->quote()ing values that need it - we use DB2 at work, and quoting a number gives a SQL error (grrrrrrrr). That's my #1 complaint about the thing.
If you use placeholders similar to this or like in the insert_hash() example in the DBI documentation
you might not have that problem. (Update: Or like in jarich's sql2 string above :)
(Update: Yes, its usually the optimizer that doesn't have to
parse your statement again if the database has a SQL cache, but
placeholders are still worthwhile IMO, even on
a database like MySQL)