###前提
■会員登録
DB:MYSQL ver5.6.43
php: ver5.4.55
仮会員登録→完了→本会員登録→完了→ログイン画面→マイページ
↓該当ページ
php
1 if (!empty($_POST["mail"]) && !empty($_POST["password"])) { 2 // 入力したユーザIDを格納 3 $mail = $_POST["mail"]; 4 5 6 // 2. ユーザIDとパスワードが入力されていたら認証する 7 $dsn = sprintf('mysql:host=%s; dbname=%s; charset=utf8;unix_socket=/tmp/mysql.sock', $db['host'], $db['dbname']); 8 // 3. エラー処理 9 try { 10 $pdo = new PDO($dsn, $db['user'], $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); 11 12 13 $stmt = $pdo->prepare('SELECT * FROM member WHERE mail = ?'); 14 $stmt->execute(array($mail)); 15 16 $password = $_POST["password"]; 17 18 if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 19 // if (password_verify($password, $row['password'])) { 20 if ( $password == $row['password']) { 21 22 23 24 session_regenerate_id(true); 25 26 //正常に叩かれた場合、SQL実施 27 $sql = "UPDATE member SET sdate='$date' WHERE id='1'"; 28 $result = $pdo->query($sql); 29 30 31 // 入力したIDのユーザー名を取得 32 $id = $row['id']; 33 $sql = "SELECT * FROM member WHERE id = $id"; //入力したIDからユーザー名を取得 34 $stmt = $pdo->query($sql); 35 foreach ($stmt as $row) { 36 $row['mail']; // ユーザー名 37 } 38 $_SESSION["mail"] = $row['mail']; 39 header("location: my.php"); 40 exit(); // 処理終了 41 } else { 42 // 認証失敗 43 $errorMessage = '※mailまたはPasswordが間違っています。'; 44 } 45 } else { 46 // 4. 認証成功なら、セッションIDを新規に発行する 47 // 該当データなし 48 $errorMessage = '※該当データなしmailまたはPasswordが間違っています。'; 49 } 50 } catch (PDOException $e) { 51 52 $errorMessage = header("Location: 500.php"); 53 54 } 55 } 56 57 } 58 var_dump($errorMessage); 59 } 60 61?>
###起きている事象
UPDATEが一列目のみしか効かない
|id|mail|pass|sdate|
|:--|:--:|--:|
|1|hoge@.co.jp|test1|0000:0000:
|2|hoge2@.co.jp|test2|0000:0000:
###質問点
$sql = "UPDATE member SET sdate='$date' WHERE id='1'";
ここの記載により一行目のみしか更新されないのですが、
ログインしたユーザーのsdateを更新したい場合こちらどのように修正すれば宜しいでしょうか?
回答1件
あなたの回答
tips
プレビュー