perl6でデータベース操作を行う方法は、現在のところMiniDBIというモジュールを使うのが良さそうなので、その使い方を紹介します。MiniDBIはrakudo-star-2010-11に同梱されていましたので、追加のインストールは不要です。
使い方はこんな感じです。
#!/usr/bin/env perl6 use v6; use MiniDBI; my $dbh = MiniDBI.connect( 'MiniDBI:mysql:database=hoge;host=127.0.0.1', 'root', '', :RaseError ); $dbh.do('set names utf8'); { my $sth = $dbh.prepare('select * from hoge where id = ?'); $sth.execute(42); while $sth->fetchrow_hashref() -> $row { my $body = Buf.new($row<body>.comb>>.ord).decode; $body.say; } } { my $sth = $dbh.prepare('insert into hoge values (?,?)'); $sth.execute(50, 'ほげほげ'); }
まずまず普通に動いているようです。注意しないといけないのは、
くらいでしょうか。実際にはこれをベースに自分で安全な実装を書く方が良いと思います。NativeCallを使ってlibmysqlclientをたたいているので、そこらへんの使い方は参考になるでしょう。