[php] PDO와 데이터베이스 속성 설정

PHP 프로젝트에서 데이터베이스를 다룰 때 PDO(PHP Data Objects)를 통해 데이터베이스에 접근할 수 있습니다. PDO는 다양한 데이터베이스에 대한 일관된 인터페이스를 제공하며, 데이터베이스 연결 및 쿼리 수행을 간편하게 처리할 수 있습니다.

PDO 데이터베이스 연결 설정

PHP에서 PDO를 사용하여 데이터베이스에 연결하려면 다음과 같이 설정할 수 있습니다.

<?php
$host = 'localhost';
$dbname = 'mydatabase';
$username = 'username';
$password = 'password';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    // 다른 속성 설정
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>

위 코드에서는 new PDO()를 사용하여 데이터베이스에 연결하고, setAttribute() 메서드를 사용하여 추가적인 속성들을 설정합니다. 여기서 3가지 속성을 설정했는데, 첫 번째는 PDO::ATTR_ERRMODE로 에러를 보고하는 방식을 설정하고, 두 번째는 PDO::ERRMODE_EXCEPTION로 에러가 발생하면 예외를 던지도록 설정했습니다.

데이터베이스 속성 설정

PDO를 통해 데이터베이스에 연결했다면 다양한 속성을 설정할 수 있습니다. 예를 들어, 연결 시간 초과, 문자 인코딩, 에러 레포팅 및 프리페어드 스테이먼트의 에뮬레이터 사용 등을 설정할 수 있습니다.

$pdo->setAttribute(PDO::ATTR_TIMEOUT, 5); // 연결 시간 초과 설정
$pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES utf8"); // 문자 인코딩 설정
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 에러 레포팅 설정
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); // 프리페어드 스테이먼트 에뮬레이터 사용 설정

이렇게 다양한 속성을 설정하여 PDO를 통해 안전하고 효과적으로 데이터베이스에 접근할 수 있습니다.


참고문헌: