PDO:PHP Data Object(Database library) 입문

PDO는 PHP Data Objects extension의 약자로 PHP에서 데이터베이스를 사용하려고 할 때 사용하는 라이브러리이다.
가볍고, 깔끔한 코딩을 가능하게 해준 다는 점에서 개발자들에게 필요한 라이브러리라고 할 수 있을 것 같다.
또, PHP + MySQL 조합 뿐만 아니라 Oracle, SQLite 등 거의 모든 DBMS와 일관성있는 인터페이스로 접근이 가능하기 때문에 추후 이식성이 좋다는 장점도 있다.
대신, 객체지향(Object-Oriented)으로 되어있기 때문에 아무래도 mysqli 같은 DB extension 함수들 보다는 부하가 크다.
PDO는 PHP 5.1부터 지원하고, 5.0에서는 PECL extension을 통해 가능하다고 한다.
설치가 되지 않은 환경에서의 시작은 아래 PHP 매뉴얼 링크를 참조하길 바란다.
http://www.php.net/manual/kr/book.pdo.php
PDO가 만들어지게 된 계기, PDO의 개념등을 파악하는데 도움이 되는 글이 있어서 링크한다.
PHP 5 Data Object (PDO) Abstraction Layer와 오라클
http://www.oracle.com/technology/global/kr/pub/articles/php_experts/otn_pdo_oracle5.html
PHP 매뉴얼에서 발췌한 예제로 사용법을 알아본다.
객체를 생성하는 방식으로 연결 후, 간단한 query를 날려 결과를 얻는 예제. exec 메서드가 적용된 열 개수를 리턴하는게 흥미롭다.

트랜잭션도 된다.

prepare로 반복되는 쿼리에 대한 메모리를 절약하고, SQL 인젝션을 방지할 수 있다.

개인적으로도, 이런 방법이 있다는 것은 알았지만 기존에 SQL문을 문자열로 생성해서 사용하던 방식을 쉽게 버리지 못하고 있었는데, 그런 고정 관념에서 탈피해야 겠다.

SELECT로 값을 가져오는 예제.
안돌아 갈 것 같은 코드인데 나와있다. 신기하다.

prepared 된 SELECT 쿼리에 WHERE 조건을 bind 해서 실행하는 예제.

ASSOCiated (배열)로 결과를 가져오는 예제.
PDO에 대한 개념 조차 희박한 상황에서 정보를 얻으려는데 의외로 자료가 많이 없는 것을 알았다. 이 글의 내용도 아주 작은 부분만을 설명하고 있지만, 다른 라이브러리에서 이미 대세가 됐다고 판단되는 PDO로 갈아타는데 조금이나마 도움이 되었으면 좋겠다.
더 자세한 사용법은 RFTM! (Read the Fucking Manual)
끝.

]]>

도큐멘트 에 올린 글

댓글 남기기