MySQL 코드를 PDO 문으로 변환: 단계별 가이드
문제 이해
첫 번째 if 문을 PDO 문으로 대체하여 ID를 사용하여 데이터베이스에서 사용자의 이메일을 검색하려고 합니다.
PDO와 연결
활용하려면 PDO, 먼저 MySQL 데이터베이스에 대한 연결을 설정해야 합니다:
$db_host = "127.0.0.1"; $db_user = "root"; $db_pass = ""; $db_database = "my_database"; $pdo = new PDO("mysql:host=$db_host;dbname=$db_database", $db_user, $db_pass, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => false ]);
코드 업데이트
준비된 명령문
준비된 문은 특히 사용자 입력으로 작업할 때 향상된 보안과 가독성을 제공합니다.
$sql = "SELECT email FROM users WHERE u_id = ?"; $stmt = $pdo->prepare($sql); $stmt->bindParam(1, $id, PDO::PARAM_INT); $stmt->execute(); $email = $stmt->fetchColumn();
업데이트된 코드
PDO 및 준비된 문을 사용하여 업데이트된 코드:
$id = $_SESSION['u_id'] ?? NULL; if ($id) { $sql = "SELECT email FROM users WHERE u_id = ?"; $stmt = $pdo->prepare($sql); $stmt->bindParam(1, $id, PDO::PARAM_INT); $stmt->execute(); $email = $stmt->fetchColumn(); } $email = $email ?? ""; // To avoid PHP notices $suggestions = selectAll($table); $optionOne = $_POST['optionOne'] ?? ""; $optionTwo = $_POST['optionTwo'] ?? ""; $newSuggestion = $_POST['new-suggestion'] ?? ""; if ($newSuggestion && $id && $email && $optionOne && $optionTwo) { $sql = "INSERT INTO suggestions (user_id, email, option_1, option_2) VALUES (?, ?, ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->bindParam(1, $id, PDO::PARAM_INT); $stmt->bindParam(2, $email, PDO::PARAM_STR); $stmt->bindParam(3, $optionOne, PDO::PARAM_STR); $stmt->bindParam(4, $optionTwo, PDO::PARAM_STR); $stmt->execute(); } else { echo "All options must be entered"; }
위 내용은 MySQL 코드를 PDO 준비 명령문으로 변환하는 방법: 단계별 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!