php 입문 | PDO를 사용한 데이터베이스 액세스 | PDO 개체를 만들기
드라이버 로드
그러면 실제로 PDO를 이용하여 MySQL에 접근 해보기로 하자. PDO를 이용하려면 PHP로 PDO 이용을 위한 드라이버 프로그램이 로드되어 있지 않으면 안된다. 드라이버 로드는 php.ini 파일에 작성되어 있다. (XAMPP의 경우 XAMPP 설치 폴더에있는 “php"폴더에 있다)
extention=php_pdo.dll
extention=php_pdo_XX.dll
php.ini에서 이 같은 내용이 있을 것이므로 검색해 보자. XX 부분은 데이터베이스 유형이 지정된다. MySQL의 경우 “php_pdo_mysql_mysqlnd.dll”, “php_pdo_mysql_libmysql.dll” 두 개의 DLL 파일을 로드하는 내용이 있을 것이다. 이 글의 시작 부분에 주석을 나타내는 콜론 (;) 기호가 붙어 있으면, 그것을 제거한다. 이제 서버를 재시작하면 드라이버를 로드 할 수 있다.
덧붙여서 현재 XAMPP 1.7.x에서는 기본적으로 MySQL의 드라이버가 로드되도록 설정되어 있기 때문에, php.ini의 수정하지 않아도 된다.
PDO 액세스의 기본 정리
그럼 PDO를 이용한 데이터베이스 액세스에 대해 정리하고 갑시다. 먼저 해야 할 것은 ‘PDO’개체를 만드는 것이다.
$변수 = new PDO(서버 지정, 사용자 이름, 암호);
이런 식으로 만든다. 첫번째 인수에 데이터베이스를 지정하는 텍스트를 지정하고, 두번째, 세번째 인수에 액세스하는 사용자 이름과 암호를 지정한다. 여기서 문제는 첫번째 인수이다. 이는 다음과 같은 형태로 작성한다.
"데이터베이스 종류:host=호스트;dbname=데이터베이스;charset=인코딩"
MySQL의 경우, 데이터베이스 종류는 “mysql"로 지정한다. 이번 예제처럼 localhost에 있는 mysampledata라는 데이터베이스에 액세스하는 경우 다음과 같이 된다.
"mysql:host=localhost;dbname=mysampledata;charset=utf8"
이제 MySQL을 사용하여 특정 데이터베이스에 액세스하기 위해 PDO 오브젝트를 작성한다. 이 후에는 이 개체에서 필요한 메소드를 호출해 나갈 뿐이다.
PDO 작성에는 또 한 가지 주의해야 할 점이 있다. 그것은 “예외가 발생할 가능성이 있다"는 점이다. PDO를 사용하여 데이터베이스에 액세스할 때 문제가 발생하면 PDOException 예외가 보내진다. 그래서 new PDO 및 데이터베이스 액세스, 실제로는 다음과 같은 형태로 작성한다.
try {
$변수 = new PDO (서버 지정, 사용자 이름, 암호);
... $변수의 메소드를 호출 데이터베이스에 액세스한다 ...
} catch (PDOException $e) {
...... 예외 발생시의 처리 ......
}
이후에는 데이터베이스에 액세스하여 무엇을 할 것인가에 따라 호출 메소드와 데이터베이스에서 들어오는 값의 처리 방법도 달라진다.