とあるサイトのサンプルコードを見ていて、気になった記述がありましたので質問させて頂きます。
【疑問点があるコード】
php
1session_regenerate_id(true); 2 3// 入力したIDのユーザー名を取得 4$id = $row['id']; 5$sql = "SELECT * FROM userData WHERE id = $id"; //入力したIDからユーザー名を取得 6$stmt = $pdo->query($sql); 7foreach ($stmt as $row) { 8 $row['name']; // ユーザー名 ★ここ 9} 10$_SESSION["NAME"] = $row['name']; 11header("Location: Main.php"); // メイン画面へ遷移 12exit(); // 処理終了
上記のコードの「★ここ」の部分ですが、この記述は必要あるのでしょうか?
上記コードの目的としては、id(主キー)を基にレコードを取得し、ユーザー名を取得するものですが、以下が不明です。
・idは主キーなので1件しか返ってきませんが、ループさせる必要はあるのでしょうか?
・このforeachって、回すだけで$rowには各列の値が入ってくれるのでしょうか?
「★ここ」で$row['name']を呼び出しているのはなぜでしょうか?
・feachで回すループ「while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ){ 」で1行ずつ$rowを別の変数に追加していくのと同じ処理というイメージで良いのでしょうか?
初歩的な質問で申し訳ございませんが、どなたかご解説ください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/02 07:44