Perl DBIのselect系メソッド
久しぶりの記事となってしまいましたが、本当はまとめておきたいことがたくさんあるんです。でも忙しくてなかなか。
でも、俺は「まとまった時間を手に入れた!」のです。
なので書きます。
Perlでmysqlと連携させることが多いので、DBIモジュールをよく使用します。
その中で、SELECTしたときの結果を取り出すのに、たくさんの方法があって困ります。
$dbh->fetch系
$sth->select系
主に分けてこの2種類ですが、今回は$sth->select系のまとめ。
で、まぁ参考にしたサイトはこちら→Perl応用
それを参考にまとめると(パクリじゃないんだからねっ)こんな感じ。
メソッド | 結果の取得 | 結果の取り出し方 |
---|---|---|
selectrow_array | 1行目 | $result[列番号] |
selectrow_arrayref | 1行目 | $result->[列番号] |
selectcol_arrayref | 各行1列目 | $result->[行番号] |
selectall_arrayref | 全取得 | $result->[行番号]->[列番号] |
selectrow_hashref | 1行目 | $result->{“列名”} |
selectall_hashref | 全取得 | $result->[行番号]->{“列名”} |
メソッドの名称からも分かるとおり、arrayなら、配列で結果が返ってきます。
arrayrefなら、配列のリファレンス、hashrefなら、ハッシュ配列のリファレンスで結果が返ってきます。
私はよくselectrow_arrayとかselectall_arrayrefとか使います。
selectrow_arrayは1つめの結果だけが必要なとき、selectrow_arrayrefは全ての結果を1度に取得したいときに。
でももっといいのは、$dbh系のfetch系をwhile文とかで回すのがいいようです。
最近のコメント