>  기사  >  데이터 베이스  >  MySQLi 문을 PHP에서 PDO로 변환하는 방법은 무엇입니까?

MySQLi 문을 PHP에서 PDO로 변환하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-06 03:34:02144검색

How to convert a MySQLi statement to PDO in PHP?

PDO를 사용하여 SQL 변환을 수행하는 방법

소개

PDO(PHP 데이터 개체) )은 PHP에서 데이터베이스와 상호작용하기 위한 통합 API를 제공합니다. 이는 SQL 쿼리를 작성하고 실행하기 위한 체계적이고 일관된 방법을 제공합니다. 이 문서에서는 제공된 PHP 코드의 첫 번째 if 문을 mysqli 사용에서 데이터베이스 액세스용 PDO 사용으로 변환하는 방법을 보여줍니다.

코드 업데이트

PDO를 사용하려면 if 문에서는 데이터베이스 연결 매개변수 정의부터 시작합니다.

$db_host = "127.0.0.1";
$db_name = "name_of_database";
$db_user = "user_name";
$db_pass = "user_password";

// Create a connection to the MySQL database
$pdo = new PDO(
    "mysql:host={$db_host};dbname={$db_name}",
    $db_user,
    $db_pass,
    [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_EMULATE_PREPARES => FALSE
    ]
);

다음으로, PDO 준비된 문을 사용하도록 if 문을 업데이트합니다.

if ($id) {
    $sql = "SELECT email FROM users WHERE u_id = ?";
    $query = $pdo->prepare($sql);    // Prepare the query 
    $query->execute([$id]);          // Bind the parameter and execute the query 
    $email = $query->fetchColumn();  // Return the value from the database
}

fetchColumn() 메서드는 단일 항목을 검색합니다.

추가 고려 사항

  • 오류 처리: PDO 작업 시 예외를 올바르게 처리해야 합니다.
  • 매개변수 바인딩: SQL 주입 취약점을 방지하려면 준비된 문을 사용하세요.
  • Null 병합 연산자: 알림을 방지하려면 null 병합 연산자(??)를 사용하세요. 또는 변수가 정의되지 않은 경우 오류가 발생합니다.

코드 업데이트 완료

$id = $_SESSION['u_id'] ?? NULL;

if ($id) {
    $sql = "SELECT email FROM users WHERE u_id = ?";
    $query = $pdo->prepare($sql);
    $query->execute([$id]);
    $email = $query->fetchColumn();
}

$email = $email ?? "";
$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 (?, ?, ?, ?)";
    $query = $pdo->prepare($sql);
    $query->execute([$id, $email, $optionOne, $optionTwo]);
} else {
    echo "All options must be entered";
}

PDO를 사용하도록 코드를 변환하면 보안이 강화되고 성능이 향상됩니다. 다양한 데이터베이스 시스템 간 이식성.

위 내용은 MySQLi 문을 PHP에서 PDO로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.