https://www.websec-room.com/2015/03/15/2153#i-4
↑を参考にしながら勉強しているのですが、SQL文についてわからない部分があったので質問させて頂きます。
php
1<?php 2 session_start(); 3 require_once('function.php'); 4 header('Content-type: text/html; charset=utf-8'); 5 //URLからパラメータ取得 PHP_URL_QUERY)->?の後ろを取得している 6 $url_pass = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY); 7 //ユーザー正式登録 8 try { 9 // DB接続 10 $pdo = new PDO(DNS, USER_NAME, PASSWORD, get_pdo_options()); 11 //プレースホルダで SQL 作成 12 $sql = "SELECT * FROM users WHERE temp_pass = ? AND register_time >= ?;"; 13 $stmt = $pdo->prepare($sql); 14 //10分前の時刻を取得 15 $datetime = new DateTime('- 10 min'); 16 $stmt->bindValue(1, $url_pass, PDO::PARAM_STR); 17 $stmt->bindValue(2, $datetime->format('Y-m-d H:i:s'), PDO::PARAM_STR); 18 $stmt->execute(); 19 $row = $stmt->fetch(PDO::FETCH_ASSOC); 20 //URLが不正か期限切れ 21 if (empty($row)) { 22 $_SESSION['error_status'] = 6; 23 redirect_to_register(); 24 exit(); 25 } 26 $id = $row['id']; 27 $sql = "UPDATE users SET is_user = 1 WHERE id = ?;"; 28 $stmt = $pdo->prepare($sql); 29 // トランザクションの開始 30 $pdo->beginTransaction(); 31 try { 32 $stmt->bindValue(1, $id, PDO::PARAM_STR); 33 $stmt->execute(); 34 // コミット 35 $pdo->commit(); 36 } catch (PDOException $e) { 37 // ロールバック 38 $pdo->rollBack(); 39 throw $e; 40 } 41 } catch (PDOException $e) { 42 die($e->getMessage()); 43 } 44?> 45<!DOCTYPE html> 46<html lang="ja"> 47<head> 48 <meta charset="utf-8"> 49</head> 50<body> 51<h1>登録完了</h1> 52ユーザーの登録が終了しました。<br> 53ログイン画面からログインしてください。<br><br> 54<a href="login.php">ログイン画面に戻る</a> 55</body> 56</html> 57
「 $sql = "SELECT * FROM users WHERE temp_pass = ? AND register_time >= ?;";」の部分の、「>=」が「=」ではない理由が知りたいです。
いろいろ調べたのですがわからなくて・・・。よろしく御願いいたします。
回答1件
あなたの回答
tips
プレビュー