MySQL 코드를 PDO 문으로 변환하는 방법은 무엇입니까?
초기 if 문을 PDO 문으로 변경하려면 다음을 수행해야 합니다. 먼저 PDO를 사용하여 연결을 설정하세요. 이를 수행하는 방법은 다음과 같습니다.
// Define database connection parameters $db_host = "127.0.0.1"; $db_name = "name_of_database"; $db_user = "user_name"; $db_pass = "user_password"; try { // Create a connection to the MySQL database using PDO $pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE); } catch (PDOException $e) { echo 'Failed to connect to the database: ' . $e->getMessage(); }
다음으로, PDO와 함께 준비된 명령문을 사용하려면 기존 코드를 수정해야 합니다. 코드의 업데이트된 버전은 다음과 같습니다.
// Initialize variables $id = $_SESSION['u_id'] ?? NULL; $email = NULL; if($id) { // Prepare the SQL statement $sql = "SELECT email FROM users WHERE u_id = :id"; $query = $pdo->prepare($sql); // Bind the parameter and execute the query $query->bindParam(':id', $id, PDO::PARAM_STR); $query->execute(); // Fetch the result $row = $query->fetch(PDO::FETCH_OBJ); $email = $row->email; } // Initialize other variables $optionOne = $_POST['optionOne'] ?? ""; $optionTwo = $_POST['optionTwo'] ?? ""; $newSuggestion = $_POST['new-suggestion'] ?? ""; // Check if the form was submitted if($newSuggestion and $id and $email and $optionOne and $optionTwo) { // Prepare the SQL statement $sql = "INSERT INTO suggestions (user_id, email, option_1, option_2) VALUES (:id, :email, :option_1, :option_2)"; $query = $pdo->prepare($sql); // Bind the parameters and execute the query $query->bindParam(':id', $id, PDO::PARAM_STR); $query->bindParam(':email', $email, PDO::PARAM_STR); $query->bindParam(':option_1', $optionOne, PDO::PARAM_STR); $query->bindParam(':option_2', $optionTwo, PDO::PARAM_STR); $query->execute(); } else { echo "All options must be entered."; }
이 업데이트된 코드는 PDO와 함께 준비된 문을 사용하여 보안과 효율성을 향상시킵니다. 또한 NULL 병합 연산자(??)를 사용하여 변수가 null인 경우 기본값을 할당합니다.
위 내용은 보안 및 효율성 향상을 위해 MySQL 코드를 PDO 문으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!