$stmtは、PDOStatementクラスのインスタンスが代入されています。
PDOStatementクラスは、ステートメント実行ときは、関連する結果セットを表します。
ステートメント実行ときというのは、
$stmt = $pdo->prepare ( 'select * from customer where login=? and password=?' );
の
select * from customer where login=? and password=?
のことでしょうか。
結果セットというのは、
select * from customer where login=? and password=?
を実行した結果セット
のことでしょうか。
結果セットってみれますか?
どのような姿なのでしょうか。
みたいです。
ご教示ください。
php
1<?php 2session_start (); 3// unset→指定した変数を破棄する 4unset ( $_SESSION ['customer'] ); 5$pdo = new PDO ( 'mysql:host=localhost;dbname=takahashi1;charset=utf8', 'takahashi', 'takahashi' ); 6$stmt = $pdo->prepare ( 'select * from customer where login=? and password=?' ); 7$stmt->execute ( array ( 8 $_POST ['login'], 9 $_POST ['password'] 10) ); 11// foreachは配列とオブジェクトをループして使うための構文 12// 配列ではないが使いやすくするために特別にforeachの反復処理で使えるように作られている 13// $rowという変数に入れる 14foreach ( $stmt->fetchAll () as $row ) { 15// 連想配列$_SESSION['customer']にキーを指定して追加し、値として連想配列を代入 16 $_SESSION ['customer'] = array ( 17//idというキーで$row['id']を入れる 18 'id' => $row ['id'], 19 'name' => $row ['name'], 20 'address' => $row ['address'], 21 'login' => $row ['login'], 22 'password' => $row ['password'] 23 ); 24} 25if (isset ( $_SESSION ['customer'] )) { 26 echo 'いらっしゃいませ、', $_SESSION ['customer'] ['name'], 'さん。'; 27} else { 28 echo 'ログイン名またはパスワードが違います。'; 29} 30?>

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/09 02:08
退会済みユーザー
2017/03/09 02:12 編集
2017/03/09 02:12
退会済みユーザー
2017/03/09 02:13
2017/03/09 03:10
退会済みユーザー
2017/03/09 03:13
2017/03/09 03:16
2017/03/09 03:16
2017/03/09 03:19
退会済みユーザー
2017/03/09 03:24 編集
2017/03/09 03:33
2017/03/09 03:50 編集
退会済みユーザー
2017/03/09 03:47