This comment is only to notice that there are two CPAN distributions that provide named placeholders for DBI too. They are:
DBIx-Placeholder-Named which supports named placeholders :name, does the right thing when things like "12:00" happens inside strings, and has a modified "execute" with a hash ref arg which does all primitive bindings and execute in one-shot.
Tao-DBI which inspired DBIx-Placeholder-Named, but which is not a DBI subclass by now, using delegation instead. It still does not implement the tokenizing trick of DBIx-Placeholder-Named to avoid confusions with ':' in strings. It has a bit more of API to make certain things easier: like supporting "$dbh->execute($arg)" (for one-named-placeholder SQL statements) besides "$dbh->execute(\%args)" and a few more details.