重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

下記のような感じで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(*****)のようなものしかかえってきません
アドバイスをどうか宜しく御願いします

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

A 回答 (1件)

>print "$sth\n";


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

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

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

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

お礼日時:2008/09/29 19:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す