DBIx::HandlerでMySQLに接続してみる。
2015年1月3日
ORMを使わない場合のコネクションって何で取るのが主流なのか不明ですが、DBIx::Handlerってのを使ってる人が多そう?なので、ちょっと試してみます。
use DBIx::Handler;
my $handler = DBIx::Handler->new($dsn, $user, $pass, $opts);
my $sql = 'UPDATE user SET name = ? WHERE id = ?';
my @bind = ('a','1');
eval{
my $txn_guard = $handler->txn_scope;
$handler->query($sql, \@bind);
$txn_guard->commit();
};
トランザクション付きでアップデートしたい場合は上記のような感じ。
(もちろんトランザクションに対応したエンジンでテーブルを作成する必要はありますが・・)
commitが呼ばれる前に失敗した(dieされた)時は、勝手にrollbackが呼ばれる。