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

解決済みの質問

PerlでDBIを使いますが、結果セットをフィールド名でアクセスするには?

OSはWindowsでAccess2002のデータベースをODBC経由でDBIを用いて、Perlからアクセスします。
以下のように、結果セットをフィールド名でアクセスしたいです。
可能でしょうか?


#!/perl/bin/perl
#!/usr/bin/perl -w

use DBI;

# create the DSN connection
$dsn = "dbi:odbc:test";
$dbh = DBI->connect($dsn) or die "接続エラー";

$query = "select * from goods;";

# execute the query
$sth = $dbh->prepare($query);
$sth->execute();

print "no name price\n";
print "--------------------------------------\n";
while(@item = $sth-> fetchrow) {
#print "@item[0] @item[1] @item[2]"; #----- 通常はこうだが、
print "$item{'goods_name'} $item{'goods_price'} $item{'auto_no'}"; #----こんな感じで利用したい。
print ("\n");
}

# disconnect
$sth->finish();
$dbh->disconnect();

exit;

__END__

投稿日時 - 2003-08-17 15:47:03

QNo.630133

暇なときに回答ください

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

my @names{@{$sth->{'NAME_lc'}}} = (0..scalar @{$sth->{'NAME_lc'}});
while (my $aref = $sth->fetchrow_arrayref ()) {
$aref->[$names{'hogehoge'}],$aref->[$names{'hugahuga'}];
}
とか
while (my $href = $sth->fetchrow_hashref ()) {
$href->{'hogehoge'},$href->{'hugahuga'};
}
見たいな感じでアクセスします。

詳しくは参考URLをご覧ください。
#サンプルが少なくてちょっと分かりにくいですが。

参考URL:http://member.nifty.ne.jp/hippo2000/perltips/dbimemo.htm

投稿日時 - 2003-08-21 03:54:08

お礼

参考になりました。

投稿日時 - 2003-09-15 09:15:47

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

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

回答(1)