PHP에서 DBMS를 연동하는 새로운 방법, PDO
- 공유 링크 만들기
- 이메일
- 기타 앱
PHP에서 DBMS를 연동하는 새로운 방법, PDO
웹 사이트를 구축하다보면, DBMS와 연동해야 될 일이 생깁니다. 특히 동적 사이트 등의 게시판을 이용하는 유형의 사이트들은 더욱 그러하지요.
최근 제가 새로운 단일 페이지 구축을 하게 되면서, PHP에서 다른 방법으로 DBMS와 연동할 수 있는 방법을 찾았는데, 이 방법이 생각보다 유용하다 생각하여 포스팅해보고자 합니다.
기존 방식의 DBMS 연동
저는 PHP 언어를 C 언어와 유사하게 되어 있어서 절차 지향 프로그래밍 방식으로 코딩하는 습관을 가지고 있었습니다.
위와 같이 절차 지향 프로그래밍 방식으로 구성할 때는 선택적으로 DB 서버 연결에 실패했을 경우, 조건문을 작성하여 처리해야 했으며 그렇지 않으면 php_fpm socket 서버에서 직접 오류를 뿜는데, 웬만해서 die 함수를 사용해 리소스를 줄이는 방책을 사용했습니다.
또한 지금 위 코드는 MySQL을 사용하는 DB Server를 연동할 때 쓰는 PHP 함수이고, 다른 DB 서버를 사용하려면 다른 전용 함수를 써야 하는 단점이 있어, 자신이 만약 DBMS를 MariaDB나 MySQL 5.6 버전 이상 또는 그 외의 DBMS로 마이그레이션이나 교체하는 경우, 모든 소스 코드를 고쳐야 한다는 단점을 가지고 있습니다.
새로운 방식의 DBMS 연동
제가 Python 언어를 다시 시작하기 시작하면서, 객체 지향 프로그래밍 방식에 눈을 돌렸는데요. 그러다가 우연히 PHP에서 객체 지향 프로그래밍 방식으로 새롭고 PHP 공식 사이트에서도 권장하는 DBMS 연동 방법을 터득하였습니다.
exec("SET CHARACTER SET utf8"); // 선택 사항,, $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $ex) { echo "Failed DBMS connection". $ex->getMessage(); } ?>
PHP 5.5 버전에서부터는 다양한 데이터베이스 환경을 PDO(PHP Data Objects)로 통합시켰습니다. 이제는 자신이 MySQL을 쓰기 위해 굳이 mysql용 함수를 쓰지 않아도 PDO에서 주소 형식만으로 PostgreSQL이나 Oracle DBMS, SQLite 등을 자유롭게 사용할 수 있게 되었습니다.
또한 PDO는 기존 API 방식과는 달리 런타임 형식의 모듈러로 구현되어 있어서 PHP 엔진을 굳이 컴파일하거나 재설치하지 않아도 런타임 환경에서 데이터베이스를 로드할 수 있습니다.
하지만 PDO를 사용하려면 PHP 설정에서 PDO 모듈을 사용할 수 있도록 설정해야 합니다.
PDO 사용해보기
PDO를 사용하려면 php.ini 파일을 수정해야합니다.
위에 대한 모든 주석을 해제해줍니다. 만약 자신이 Apache 2.x를 사용하고 있다면 php.ini 파일을 수정해야 하고, nginx 엔진을 사용하여 php-fpm을 돌리고 있다면, conf.d 디렉터리에서 각 pdo 설정 파일을 확인해야합니다.
모든 확장 기능이 연동되어졌다면, PHP 데몬을 재시작해줍니다.
# systemctl restart php-fpm.service
이제 PDO 객체를 사용하여 직접 DBMS를 연동하시면 됩니다.
from http://blog.neonkid.xyz/91 by ccl(S) rewrite - 2020-03-06 07:20:12
- 공유 링크 만들기
- 이메일
- 기타 앱
댓글
댓글 쓰기