MySQL 코드를 PDO 준비 명령문으로 변환하는 방법: 단계별 가이드

Barbara Streisand
풀어 주다: 2024-11-06 01:12:02
원래의
385명이 탐색했습니다.

How to Convert MySQL Code to a PDO Prepared Statement: A Step-by-Step Guide

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿