본문 바로가기
카테고리 없음

PHP에서 PDO와 MySQLi 차이점 쉽게 정리!

by 오디와이 2025. 4. 29.

 

안녕하세요! 오늘은 PHP에서 데이터베이스 연동 시 많이 사용하는 PDO와 MySQLi의 차이점을 아주 쉽게 정리해보겠습니다.

둘 다 MySQL을 연결할 수 있지만 각각의 특징과 장단점이 있답니다.

📌 PDO란?

  • PHP Data Objects의 약자
  • MySQL뿐만 아니라 Oracle, PostgreSQL, SQLite 등 다양한 DB 지원
  • 객체지향 방식으로만 사용 가능
  • Prepared Statement로 보안 강화 가능 (SQL Injection 방지)

📌 MySQLi란?

  • MySQL Improved의 약자
  • MySQL 전용
  • 절차형과 객체지향 방식 모두 지원
  • Prepared Statement, 트랜잭션, 멀티쿼리 지원

✅ PDO vs MySQLi 비교표

구분 PDO MySQLi
지원 데이터베이스 MySQL, Oracle, SQLite 등 다수 MySQL 전용
사용 방식 객체지향만 지원 절차형 & 객체지향 지원
Prepared Statement 지원 지원
트랜잭션 지원 지원
멀티쿼리 미지원 지원

✅ 간단한 사용 예제 비교

① PDO 예제

<?php
try {
  $conn = new PDO("mysql:host=localhost;dbname=testdb", "user", "pass");
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $stmt = $conn->prepare("SELECT * FROM members");
  $stmt->execute();
  while ($row = $stmt->fetch()) {
    echo $row['name'];
  }
} catch (PDOException $e) {
  echo "DB 오류: " . $e->getMessage();
}
$conn = null;
?>

② MySQLi 객체지향 예제

<?php
$conn = new mysqli("localhost", "user", "pass", "testdb");
if ($conn->connect_error) {
  die("연결 실패: " . $conn->connect_error);
}
$result = $conn->query("SELECT * FROM members");
while ($row = $result->fetch_assoc()) {
  echo $row['name'];
}
$conn->close();
?>

📌 마무리

MySQLi는 MySQL 전용, PDO는 다양한 데이터베이스 지원이라는 큰 차이가 있어요.

여러 DB를 활용할 계획이 있다면 PDO를, MySQL만 사용한다면 MySQLi를 선택하는 게 효율적입니다.

 

구독과 댓글도 많이 부탁드려요!

#PHP #PDO #MySQLi #DB연동 #웹개발 #PHP기초