본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP PDO — 통합 DB 접속 객체 완전 정리

by 왕진 2026. 6. 19.
반응형

 

 

Web Development · PHP PDO

PHP PDO —
여러 DB를 한 인터페이스로 다루는 표준 클래스

DSN 문자열 한 줄로 접속
시작 오늘 분석할 코드
<?php $pdo = new PDO('mysql:host=localhost;dbname=sampledb;charset=utf8', 'root', ''); print 'PDO 클래스를 통해 접속이 성공하였습니다.'; // DB 처리 ... $pdo = null; // 접속 종료 ?>

1 PDO란?

PDO (PHP Data Objects)는 PHP 5.1+에 도입된 DB 추상화 계층. MySQL·PostgreSQL·SQLite 등 다양한 DB를 같은 인터페이스로 다룰 수 있다.


2 DSN 문자열
'mysql:host=localhost;dbname=sampledb;charset=utf8' ↑ ↑ ↑ ↑ 드라이버 호스트 DB명 인코딩

DSN(Data Source Name)은 접속 정보를 한 문자열로 담은 형식. ;로 구분된 key=value 쌍.


3 다른 DB도 같은 패턴
// MySQL new PDO('mysql:host=localhost;dbname=sampledb', 'user', 'pass'); // PostgreSQL new PDO('pgsql:host=localhost;dbname=sampledb', 'user', 'pass'); // SQLite new PDO('sqlite:/path/to/db.sqlite');

PHP 코드의 나머지는 거의 같다 — DB 변경 시 DSN만 수정.


 

반응형

 

4 접속 종료 — null 대입
$pdo = null;

PDO에는 close() 메서드가 없다. 변수에 null 대입으로 객체 참조를 끊으면 접속이 종료된다.


5 charset=utf8 vs utf8mb4
학습용 코드라 utf8이지만, 실무에서는 charset=utf8mb4가 권장. 이모지·확장 문자까지 안전하게 처리.

핵심 한 줄 요약

PDOPHP의 통합 DB 접근 인터페이스
DSN"드라이버:host=...;dbname=..." 형식
생성자new PDO(DSN, 유저, 비번)
접속 종료$pdo = null
vs mysqliPDO는 다양한 DB, mysqli는 MySQL 전용
현대 권장PDO + prepared statement
utf8mb4실무 권장 인코딩
반응형

댓글