※ ChatGPTを利用し、要約された質問です(原文:DB_FETCHMODE_ASSOCの時、結合した二つのテーブルから同一名のカラムのレコードを連想配列で取得できないのか??)
DB_FETCHMODE_ASSOC時の結合したテーブルからの値の取得方法について
2007/05/06 02:02
このQ&Aのポイント
DB_FETCHMODE_ASSOCの場合、結合したテーブルから同一名のカラムのレコードを連想配列で取得できません。
$db->setFetchMode(DB_FETCHMODE_ORDERD);の場合は、添字配列を使用して値を取得できます。
質問者はDB_FETCHMODE_ASSOC時に結合したテーブルから同一名のカラムの値を取得できる方法を教えてほしいとしています。
DB_FETCHMODE_ASSOCの時、結合した二つのテーブルから同一名のカラムのレコードを連想配列で取得できないのか??
よろしくお願いします。
$db =& DB::Connect($dsn, array());
$db->setFetchMode(DB_FETCHMODE_ASSOC);
とし、
$res = $db->query("select A_t.ID, B_t.ID from A_t, B_t where A_t.NO = B_t.NO");
のようにsqlを発行した時、
while($row = $res->fetchrow()){
//.....
}
で、$rowに値を格納しようとしたのですが、
print $row[A_t.ID];
などとすると、
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']'
のようなエラーが出てしまいます。
$row[ID];
では、Aテーブルから取得したレコードなのかBテーブルから取得したレコードなのか判別できないのでダメだと思います。
$db->setFetchMode(DB_FETCHMODE_ORDERD);
にした場合は、$row[0]、$row[1] の添字配列を使用することによって、AテーブルのIDカラムのレコードもBテーブルのIDカラムのレコードもprintすることが出来ましたが、
$db->setFetchMode(DB_FETCHMODE_ASSOC);
では、上記のように結合した両テーブルに同一名のカラム名があると、
その同じ名前を持つカラムから連想配列にデータを渡すことは出来ないのでしょうか??
どなたか詳しい方いらっしゃったらご教授くださると幸いです。
よろしくお願いしますm(_ _)m
質問の原文を閉じる
質問の原文を表示する
お礼
お礼が遅くなってすいません。 なるほど、asを使えばよかったのですね。 解決致しました。ありがとうございましたm(_ _)m