質問: mst_product.pro_code WHERE code_member=?;'; $stmt=$dbh->prepare($sql); $data[]=$code; $stmt->execute($data); $rec=$stmt->fetch(PDO::FETCH_ASSOC); $dbh=null; $kounyuubi[]=$rec['dat_sales.date']; $urine[]=$rec['dat_sales_product.tanka']; $suuryo[]=$rec['dat_sales_product.quantity']; $hinmei[]=$rec['mst_product.pro_name']; $subhinmei[]=$rec['mst_product.pro_subname']; $gazou[]=$rec['mst_product.gazou']; ~中略~ } catch(Exception $e) { print'ただいま障害により大変ご迷惑をお掛けしております。'; exit(); } ?> 宜しくお願い致します。
回答: PDOの`PDO::FETCH_ASSOC`などで行を取得した場合、 カラム名の前につけたテーブル名(例えば`dat_sales.date`の`dat_sales.`部分)は無視されます。 そのため、以下のように修正することで望む値を取れるようになると思います。 ■修正前 ``` $kounyuubi[]=$rec['dat_sales.date']; $urine[]=$rec['dat_sales_product.tanka']; $suuryo[]=$rec['dat_sales_product.quantity']; $hinmei[]=$rec['mst_product.pro_name']; $subhinmei[]=$rec['mst_product.pro_subname']; $gazou[]=$rec['mst_product.gazou']; ``` ■修正後 ``` $kounyuubi[]=$rec['date']; $urine[]=$rec['tanka']; $suuryo[]=$rec['quantity']; $hinmei[]=$rec['pro_name']; $subhinmei[]=$rec['pro_subname']; $gazou[]=$rec['gazou']; ``` それでもうまく行かない場合は、yodel様の回答にある通り`$stmt->fetch`の直後に`var_dump($rec);`を仕込んで、変数`$rec`の値を確認してみて下さい。 プログラムが意図どおりに動かないときは、デバッグコードを仕込むなどして 1行1行の実行結果を確認してみましょう。