質問: array ( // idというキーで$row['id']を入れる 'id' => $row ['id'], 'name' => $row ['name'], 'address' => $row ['address'], 'login' => $row ['login'], 'password' => $row ['password'] ); } if (isset ( $_SESSION ['customer'] )) { echo 'いらっしゃいませ、', $_SESSION ['customer'] ['name'], 'さん。'; } else { echo 'ログイン名またはパスワードが違います。'; } ?> ``` なんでここではfetchじゃなくてfetchAllなのでしょうか。 fetchとfetchAllの使い分けもできません。 fetch→一行づつ取得 fetchAll→全データを配列に変換。全ての結果行を含む配列を返す
回答: fetchAllで取得した配列をあとで使いまわすなら意味があるけど、今回のコードではforeach内で使っていて配列自体はどこにも格納していないので、意味がないですね。 ご指摘の通り、単なるfetchの方が適切かと思います。 また抽出されるレコード数が巨大な場合、一旦配列として受け取るので、レスポンスの面でも不安があります。