php 입문 | PDO를 사용한 데이터베이스 액세스 | 데이터베이스에 액세스하는 'PDO'이란?


Web 응용 프로그램에서는 다양한 데이터를 처리한다. 그래서 주로 데이터베이스를 이용하여 데이터를 관리하는 경우가 많다. 데이터베이스는 다양한 종류가 있지만 가장 일반적으로 널리 사용되고 있는 것은 “관계형 데이터베이스"이다.

이 관계형 데이터베이스에 조회하기 위한 전용 언어인 SQL을 사용하여 데이터베이스에 필요한 정보 등을 조사하고 보내달라고 한다는 것이다. 현재 널리 사용되고 있는 MySQL이나 Oracle, PostgreSQL, 또 최근에는 Android 나 iPhone과 같은 내부 데이터베이스로서도 활약하는 SQLite 등은 모두 이 관계형 데이터베이스의 종류이다. 이외에도 데이터베이스도 물론 많이 있지만, 아무튼 지금의 단계에서 “데이터베이스 = 관계형 데이터베이스"라고 생각하는 것이 좋을 것이다.

데이터베이스 이용의 3 가지 방법

그런데, PHP에는 관계형 데이터베이스를 사용하기 위한 몇 가지 기능이 포함되어 있다. 대체로 다음 세 가지로 정리 될 것이다.

함수에 의한 이용

예를 들어 MySQL이라면, mysql_OO 같은 형태로 데이터베이스 액세스를 위한 함수가 대충 준비되어 있다. 이 함수를 호출하여 사용한다. PHP의 초기 시절부터 준비되어 있던 것으로, PHP5 이전의 것으로 사용할 수 있다. 단, 모든 함수를 호출하여 사용한다는 것은 오늘날의 객체 지향 프로그래밍과는 동떨어진 방식이라고 할 수 있다. “PHP5 이전의 오래된 PHP에서 사용했던 방식"이라고 하는 것이다.

객체에 의한 이용

예를 들어 MySQL이라면, new mysqli와 같이 하여 MySQL 액세스 개체를 만들고, 그 중의 메소드를 호출하여 사용한다. 이는 위의 함수들을 객체로 정리한 것으로, 일단 객체 지향으로 데이터베이스 액세스 할 수 있도록 한다.

PDO에 의한 이용

PDO라는 것은 “PHP Data Objects"의 약자이다. PDO라는 클래스의 개체를 만들고 그 메소드를 호출하여 데이터베이스를 사용한다. 다른 것과 크게 다른 점은 “데이터베이스라면 모두 같은 방식으로 된다"라는 점이다. 개체를 만들 때 데이터베이스의 종류 등을 설정하는 것만으로, 이후에는 데이터베이스의 종류를 신경쓰지 않고 사용할 수 있다.

 

여기에서는 “PDO를 사용한 액세스"에 대해 설명한다. 이는 PHP 5.1에서 새롭게 제공되는 기능으로 단순히 객체 지향 수단을 제공하는 것뿐만 아니라, 데이터베이스의 차이를 흡수하고 액세스 대상이 무엇이든 변하지 않는 처리가 만들 수 있도록 설계되어 있다. 이제부터 새롭게 배우고자 한다면, PDO가 가장 좋다.