• ベストアンサー

DBIを使用してデータを連想配列に「入れたい。

MySQLとDBIを使って、テーブルから取り出したデータの、カラムの名前をキー、フィールド値をバリューとした連想配列を作りたいのですが、どうすればいいでしょうか?? fetchrow_arrayの使い方は分かっているのですが、fetchrow_arrayだと配列しか作れないみたいなので・・ハッシュにしたいのです。 分かる方いらっしゃいましたらご教授よろしくお願いします。

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

  • ベストアンサー
  • vsba23895
  • ベストアンサー率58% (18/31)
回答No.2

while(my $hash= $result->fetchrow_hashref()) { while(my($field,$value)= each(%$hash)) { .. } } なお、SELECT table1.field,table2.field,... のように複数テーブルで同じフィールド名があると、うまくいかないという問題があります。

その他の回答 (2)

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.3

連想配列にするなら、fetchrow_arrayではなくfetchrow_hashrefを使うと1行で済みます。 %HOGE = %{$result->fetchrow_hashref}; ↑こうするだけでご希望通りの結果を得られます。

miraikako
質問者

お礼

お礼遅れて申し訳ありません。教えていただいてた方法を色々試して解決しました。回答くださった方々ありがとうございましたm(__)m

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

my %hash; $hash["カラムの名前"]=フィールド値; とすればいいですけど、、 連想配列の場合、1つのキーに基本1つの値なので、 複数のフィールド値の場合は、バリューを配列にする必要があります

関連するQ&A