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

PHP 프로젝트에서 데이터베이스에 접속하고 작업을 수행할 때 PDO(PHP Data Objects)를 사용하여 데이터베이스에 연결하는 것이 좋습니다. PDO를 사용하면 다양한 데이터베이스 엔진(MySQL, PostgreSQL, SQLite 등)에 쉽게 접속할 수 있으며, SQL 인젝션과 같은 공격으로부터 안전한 쿼리를 수행할 수 있습니다.

PDO 데이터베이스 속성 설정하기

PDO로 데이터베이스에 접속하기 전에 몇 가지 속성을 설정할 수 있습니다. 이러한 속성은 데이터베이스와의 연결을 조절하고 데이터를 가져올 때의 동작을 제어하는 데 사용됩니다.

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

$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_EMULATE_PREPARES => false,
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
];

try {
    $pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
    echo '데이터베이스에 접속할 수 없습니다: ' . $e->getMessage();
}
?>

위 예제에서는 ATTR_ERRMODE를 사용하여 에러 모드를 ERRMODE_EXCEPTION으로 설정하여 데이터베이스 예외를 발생시키도록 했습니다. 또한 ATTR_EMULATE_PREPARESfalse로 설정하여 PDO가 모의 실행을 사용하지 않도록 했습니다. 그리고 MYSQL_ATTR_INIT_COMMAND를 사용하여 데이터베이스에 연결할 때 실행할 초기 명령을 설정하였습니다.

속성 설정 옵션

PDO::ATTR_ERRMODE

PDO::ATTR_EMULATE_PREPARES

엔진별 추가 속성

각각의 데이터베이스 엔진은 추가적으로 설정할 수 있는 속성들이 있습니다. MySQL의 경우 MYSQL_ATTR_INIT_COMMAND를 사용하여 초기 명령을 설정할 수 있습니다.

PDO를 사용하여 데이터베이스를 다룰 때 이러한 속성들을 올바르게 설정하고 활용하면 안정적이고 효율적으로 데이터베이스를 처리할 수 있습니다.


본 문서는 아래 자료를 참조하여 작성되었습니다.