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

PHP에서 MySQL과 MySQLi 차이점 쉽게 정리!

by 오디와이 2025. 4. 29.

 

안녕하세요! 오늘은 PHP에서 데이터베이스 연동할 때 자주 듣게 되는 'MySQL'과 'MySQLi'의 차이점을 아주 쉽게 설명해드릴게요. 웹 개발을 처음 시작하거나, 기존 코드를 유지보수하다 보면 이 둘이 헷갈리기 쉽죠!

📌 MySQL과 MySQLi란?

  • MySQL: PHP에서 MySQL 데이터베이스와 연결할 때 사용하던 오래된 함수형 API
  • MySQLi (MySQL Improved): MySQL의 기능을 향상시킨 최신 확장 모듈로, 절차형 + 객체지향 방식 지원

※ PHP 7.0 이상에서는 MySQL 함수는 더 이상 사용되지 않으며, MySQLi나 PDO를 사용해야 합니다.

✅ MySQL과 MySQLi 차이점 표로 보기

구분 MySQL MySQLi
지원방식 절차형 절차형 & 객체지향
지원여부 PHP 7부터 지원 중단 PHP 7 이상 지원
보안 취약 Prepared Statement 지원 (SQL Injection 방지)
멀티쿼리 미지원 지원
트랜잭션 미지원 지원

✅ 사용 예제 비교

① MySQL 예제 (구버전, 이제 사용 X)

<?php
$conn = mysql_connect("localhost", "user", "password");
mysql_select_db("testdb", $conn);
$result = mysql_query("SELECT * FROM members");
while($row = mysql_fetch_assoc($result)) {
  echo $row['name'];
}
mysql_close($conn);
?>

② MySQLi 절차형 예제

<?php
$conn = mysqli_connect("localhost", "user", "password", "testdb");
$result = mysqli_query($conn, "SELECT * FROM members");
while($row = mysqli_fetch_assoc($result)) {
  echo $row['name'];
}
mysqli_close($conn);
?>

③ MySQLi 객체지향 예제

<?php
$conn = new mysqli("localhost", "user", "password", "testdb");
$result = $conn->query("SELECT * FROM members");
while($row = $result->fetch_assoc()) {
  echo $row['name'];
}
$conn->close();
?>

📌 마무리

정리하자면 MySQL 함수는 더 이상 사용하지 않고, MySQLi 또는 PDO로 개발하는 것이 표준입니다.

특히 보안성과 유지보수를 위해 MySQLi의 Prepared Statement를 활용하는 걸 추천드려요!

 

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

#PHP #MySQL #MySQLi #DB연동 #웹개발팁 #PHP7