IIRC, the DBI spec doesn't support using placeholders
for the column names, only values. Programming the Perl DBI, p 221 says the following:
With most drivers, placeholders can't be used for
any element of a statement that would prevent the database
server from validating the statement and creating a
query execution plan for it. For example:
"SELECT name, age FROM ?" #wrong (will probably fail)
"SELECT name, ? FROM people" #wrong (but may not 'fail')
While this may not fail with some databases like MySQL,
it *may* fail on databases like Oracle that natively support
placeholders. (can anyone confirm this?)