로그인 | 관리자

개발 기록과 실무 자료를 빠르게 찾아보세요.

WEB DEVELOPMENT ARCHIVE

PHP

PHP, MySQL, 서버 운영과 실무 개발 기록입니다.

목록

PHP 8.4에서 MySQL 데이터베이스 연결하기 ? mysql_connect()에서 mysqli_connect()로 변경

웹마당넷 2026-11-12 05:06:56 14

PHP 8.4에서 MySQL 데이터베이스 연결하기 ? mysql_connect()에서 mysqli_connect()로 변경


PHP 5.x 환경에서 개발한 웹사이트를 PHP 8.4로 이전하려면 기존 MySQL 데이터베이스 연결 코드를 확인해야 합니다.


기존 mysql_* 함수는 PHP 5.5에서 사용 중단이 권고되었으며 PHP 7.0부터 완전히 제거되었습니다.


AI를 활용하면 프로그래밍 코드를 직접 작성하지 않고도 웹사이트를 개발할 수 있습니다. 그러나 AI를 활용한 PHP 개발 방법은 "AI 활용"에서 별도로 다루기로 하고 이번 글은 기존 PHP 레거시 개발자를 대상으로 하겠습니다.


1. MySQL 데이터베이스 연결 방법 변경


기존 PHP 5.5 코드

<?php

$conn = mysql_connect("localhost", "dbuser", "dbpassword");

mysql_select_db("netboard", $conn);

mysql_query("SET NAMES utf8");

?>


PHP 8.4 코드

<?php

$conn = mysqli_connect("localhost", "dbuser", "dbpassword", "netboard");

mysqli_set_charset($conn, "utf8mb4");

?>

mysqli_connect()에서는 데이터베이스 이름까지 한 번에 지정할 수 있으며 문자셋은 mysqli_set_charset() 으로 설정합니다.

참고로 mysqli_* 함수는 PHP 5.0부터 지원되었으므로 PHP 8.4에서 새로 등장한 기능은 아닙니다.


2. 기존 mysql_* 함수와 mysqli_* 함수 비교


기존 함수 → 변경 함수

- mysql_connect() → mysqli_connect()

- mysql_select_db() → mysqli_select_db()

- mysql_query() → mysqli_query()

- mysql_fetch_assoc() → mysqli_fetch_assoc()

- mysql_num_rows() → mysqli_num_rows()

- mysql_real_escape_string() → mysqli_real_escape_string()

- mysql_close() → mysqli_close()


함수 이름만 변경하는 것이 아니라 연결 인자의 전달 방식과 순서도 당근 확인해야 합니다.


3. SQL 쿼리 실행 방법 변경


기존 PHP 5.5 코드

<?php

$result = mysql_query("SELECT * FROM board");

while ($row = mysql_fetch_assoc($result)) {

echo $row['subject'];

}

?>


PHP 8.4 코드

<?php

$result = mysqli_query($conn, "SELECT * FROM board");

while ($row = mysqli_fetch_assoc($result)) {

echo $row['subject'];

}

?>


mysqli_query()는 기존 mysql_query()와 달리 데이터베이스 연결 객체인 $conn을 첫 번째 인자로 전달해야 합니다.


4. PHP 8.4에서 MySQL 오류 처리


PHP 8.1부터 MySQLi의 기본 오류 처리 방식이 변경되어 데이터베이스 오류가 발생하면 mysqli_sql_exception 예외가 발생합니다.

<?php

try {

$conn = mysqli_connect(

"localhost", "dbuser", "dbpassword", "netboard"

);

mysqli_set_charset($conn, "utf8mb4");

} catch (mysqli_sql_exception $e) {

error_log($e->getMessage());

exit("데이터베이스 연결 오류");

}

?>


기존 PHP 5.x에서 false 반환값을 확인하는 방식으로 오류를 처리했다면 이 부분도 확인해야 합니다.


마무리


PHP 7.0부터 기존 mysql_* 함수가 제거되었으므로 mysqli_* 또는 PDO를 사용해야 합니다.

기존 절차형 방식도 PHP 8.4에서 그대로 사용할 수 있으므로 반드시 객체지향 방식으로 변경할 필요는 없습니다.

이번 글에서는 PHP 8.4에서 MySQL 데이터베이스를 연결하는 방법과 기존 코드의 주요 변경 사항을 살펴보았습니다.

앞으로도 PHP 개발에 도움이 되는 실무 정보를 소개하겠습니다.


댓글 0

등록된 댓글이 없습니다.
댓글 작성 타인을 비방하거나 광고성 내용을 등록하지 마세요.
WEB DEVELOPMENT ARCHIVE

PHP

PHP, MySQL, 서버 운영과 실무 개발 기록입니다.

글쓰기
전체 82건
번호
제목
작성자
작성일
조회