DBIのfinish()
- 作者: アリゲータデカルト,ティムバンス,Alligator Descartes,Tim Bunce,田中幸
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2001/08
- メディア: 単行本
- 購入: 2人 クリック: 37回
- この商品を含むブログ (14件) を見る
よりfinishメソッドについて、初めて知ったことメモ。
まあ最近はOR/マッパ主流みたいだし、あんまり意味ないかもだけど。
(finish()は、ステートメントハンドルそれ自身を「終了する」のではないことを心にとどめておこう。それは、現時点のステートメントハンドルの実行のみを終了させる。再びそのハンドル上でexecuteOを呼び出すことができるのだ)。
P124
え、finishしてもまだ生きているんですか!!
というわけでやってみた。
#!/usr/local/bin/perl use strict; use warnings; use DBI; my $user = 'rightgo09'; my $pw = 'xxxxxxxx'; my $dbh = DBI->connect( "DBI:mysql:database=test;host=localhost", $user, $pw, ) or die; my $sth = $dbh->prepare("SELECT id, name FROM user"); $sth->execute; my $fetch = $sth->fetch; print "@$fetch\n"; #===================== $sth->finish; $sth->execute; # once more #===================== $fetch = $sth->fetch; print "@$fetch\n"; $sth->finish; $dbh->disconnect; __END__
$ ./db_finish.pl 1 rightgo09 1 rightgo09
できた。
でもカーソルは戻っちゃうよね。
これも知っていても使いどころがないパターンかな。