こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PerlでSQLiteを使おうとしてもうまく行きません

下記のような感じでPerlプログラムからSQLiteのデータベースから読み出すプログラムを組んでみました。
もちろん、実際にデータベースのファイルを作ってあります。
下のように、かなりシンプルで簡単なプログラムですし、
間違ってもいないとは思うのですが・・・

use DBI;
$db = DBI->connect("dbi:SQLite:dbname=accountdb","","",);
$sth = $db->prepare("SELECT * FROM user");
$sth->execute;#結果を取得しresに代入
print "$sth\n";
$sth->finish;
exit;

上を実行した結果は、下記の通りです。
DBI::st=HASH(0x32706c4)
closing dbh with active statement handles during global destruction.
私が思うに、データが$sthに帰って来ると思うのですが、
実際にはDBI::st=HASH(*****)のようなものしかかえってきません
アドバイスをどうか宜しく御願いします

(別カテゴリで似たような質問をさせていただきましたが、これはまた別です・・・)

投稿日時 - 2008-09-28 16:46:17

QNo.4362910

困ってます

質問者が選んだベストアンサー

>print "$sth\n";
>私が思うに、データが$sthに帰って来ると思うのですが、

"SELECT * FROM user" の実行結果は複数行(の固まり)であり,
$sthに格納されているのはその固まりを指す1つの値(HASH,ハッシュ)です。

実行結果を行として表示したいなら,fetchrow_系の関数を使うことになります。
下記ページ内で,キーワード"fetchrow_"を検索してください。
http://homepage3.nifty.com/hippo2000/perltips/dbimemo.htm

投稿日時 - 2008-09-29 18:30:35

お礼

ありがとうございました。
私が勘違いしていたようで・・・。
うまく行きました。

投稿日時 - 2008-09-29 19:00:03

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問