• ベストアンサー
  • 困ってます

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

  • 質問No.4362910
  • 閲覧数424
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 87% (183/209)

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

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

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 61% (1597/2590)

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

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

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

お礼率 87% (183/209)

ありがとうございました。
私が勘違いしていたようで・・・。
うまく行きました。
投稿日時:2008/09/29 19:00
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ