SQL::NamedPlaceholder
- http://search.cpan.org/~satoh/SQL-NamedPlaceholder-0.01/lib/SQL/NamedPlaceholder.pm
- https://github.com/cho45/SQL-NamedPlaceholder
もしかしたら既にあるのかもしれないのですが、見つからないのでかっとなってあげてしまいました。一部 ORM に実装されているような named placeholder を単体でやるモジュールです。
「ORM 使いたくねーし、DBI 直でやるし! あ、でも placeholder の順番間違えると嫌だな…」ってときに便利な気がします。
use SQL::NamedPlaceholder qw(bind_named);
my ($sql, $bind) = bind_named(q[
SELECT *
FROM entry
WHERE
user_id = :user_id
], {
user_id => $user_id
});
$dbh->prepare_cached($sql)->execute(@$bind);