로그인 회원가입
모두인포
전체IT경제사회생활스포츠시사여행연애

PHP MySQL 확장(MySQL Extension)

lmkfox · 2025-08-11 · 조회 0
PHP MySQL 확장(MySQL Extension)
1. MySQL 확장이란 - PHP 4와 PHP 5 초반까지 MySQL 서버와 통신하기 위해 제공된 C 기반 API. - 단순하고 배우기 쉬웠지만, 보안과 기능이 부족했습니다. - 대표 함수: mysql_connect(), mysql_select_db(), mysql_query(), mysql_fetch_array() 등 2. MySQL 확장의 주요 함수 함수 설명 mysql_connect() MySQL 서버에 연결 mysql_select_db() 데이터베이스 선택 mysql_query() SQL 쿼리 실행 mysql_fetch_array() 결과를 배열로 반환 mysql_fetch_assoc() 연관 배열로 반환 mysql_num_rows() 결과 행 개수 반환 mysql_close() 연결 종료 3. 사용 예제 (구버전 방식) <?php // MySQL 연결 $conn = mysql_connect("localhost", "root", "비밀번호"); if (!$conn) { die("DB 연결 실패: " . mysql_error()); } // 데이터베이스 선택 mysql_select_db("testdb", $conn); // 쿼리 실행 $result = mysql_query("SELECT id, name FROM users"); while ($row = mysql_fetch_assoc($result)) { echo "ID: " . $row['id'] . " 이름: " . $row['name'] . "<br>"; } // 연결 종료 mysql_close($conn); ?> 4. MySQL 확장의 문제점 - 보안 취약점 - Prepared Statement 미지원 → SQL 인젝션에 취약 - 유니코드/UTF-8 지원 부족 - 문자셋 설정 불편, 멀티바이트 문자 처리 문제 - 기능 부족 - 트랜잭션, 스토어드 프로시저 등 최신 DB 기능 미흡 - 확장성 부족 - MySQL 전용으로, 다른 DBMS로의 변경 불가능 - 유지보수 중단 - PHP 5.5에서 사용 중단(Deprecated) - PHP 7.0에서 완전 제거 5. 대체 기술 MySQL 확장을 더 이상 사용할 수 없으므로, 아래 중 하나를 사용해야 합니다. 1) MySQLi (MySQL Improved) - MySQL 전용 - 절차지향 + 객체지향 지원 - Prepared Statement 지원 - 최신 MySQL 기능 지원 예: $conn = new mysqli("localhost", "root", "비밀번호", "testdb"); $stmt = $conn->prepare("SELECT * FROM users WHERE id = ?"); $stmt->bind_param("i", $id); $stmt->execute(); 2) PDO (PHP Data Objects) - 다양한 DBMS 지원 (MySQL, PostgreSQL, SQLite 등) - 객체지향 기반 - Prepared Statement 지원 - DB 변경 시 코드 수정 최소화 예: $pdo = new PDO("mysql:host=localhost;dbname=testdb;charset=utf8", "root", "비밀번호"); $stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id"); $stmt->execute([':id' => 1]); 6. MySQL 확장과 MySQLi/PDO 비교 기능 MySQL 확장 MySQLi PDO DB 지원 MySQL 전용 MySQL 전용 다중 DB 지원 Prepared Statement X O O 객체지향 지원 X O O 트랜잭션 X O O PHP 7 이상 지원 X O O 7. 결론 - mysql_* 함수는 더 이상 사용할 수 없으며, MySQLi 또는 PDO로 반드시 전환해야 합니다. - 새로운 프로젝트는 보안과 확장성을 위해 PDO 또는 MySQLi(객체지향) 사용을 권장합니다.

댓글

아직 댓글이 없습니다.

로그인 후 댓글을 남길 수 있습니다.