PHP로 MySQL 테이블 삭제하기
데이터베이스를 운영하다 보면 더 이상 필요 없는 테이블을 삭제해야 할 때가 있습니다. PHP에서는 SQL의 DROP TABLE 문을 실행하여 기존 MySQL 테이블을 손쉽게 삭제할 수 있습니다.
과거에는 mysql_query() 함수를 사용해 이 작업을 처리했지만, 해당 함수는 PHP 5.5부터 폐기(deprecated)되었고 PHP 7에서는 완전히 제거되었습니다. 따라서 현재는 mysqli 확장 또는 PDO를 사용하는 것이 표준적인 방법입니다.
핵심 절차
- MySQL 서버에 연결 – 호스트, 사용자명, 비밀번호로 데이터베이스 연결을 생성합니다.
- 작업할 데이터베이스 선택 – 삭제할 테이블이 포함된 데이터베이스를 지정합니다.
- DROP TABLE 쿼리 실행 – 대상 테이블을 삭제합니다.
- 결과 확인 및 연결 종료 – 성공 여부를 출력하고 연결을 닫습니다.
예제 코드
다음 예제는 PHP 스크립트를 사용해 tutorials_tbl이라는 테이블을 삭제하는 전체 과정을 보여줍니다.
<html>
<head>
<title>MySQL 테이블 삭제</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
// MySQL 서버에 연결
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('연결할 수 없습니다: ' . mysqli_connect_error());
}
echo '성공적으로 연결되었습니다<br />';
// 삭제할 테이블 지정
$sql = "DROP TABLE tutorials_tbl";
// 데이터베이스 선택 후 쿼리 실행
mysqli_select_db( $conn, 'TUTORIALS' );
$retval = mysqli_query( $conn, $sql );
if(! $retval ) {
die('테이블을 삭제할 수 없습니다: ' . mysqli_error($conn));
}
echo "테이블이 성공적으로 삭제되었습니다\n";
// 연결 종료
mysqli_close($conn);
?>
</body>
</html>
코드 설명
- mysqli_connect() : 지정한 호스트와 계정 정보로 MySQL 서버에 연결합니다.
- mysqli_select_db() : 쿼리를 실행할 데이터베이스(TUTORIALS)를 선택합니다.
- mysqli_query() : DROP TABLE 문을 실행하여 테이블을 삭제합니다.
- 오류 처리 : 각 단계가 실패하면 die()로 스크립트를 중단하고 오류 메시지를 출력합니다.
주의 사항
DROP TABLE은 테이블과 그 안의 모든 데이터를 영구적으로 삭제하며 되돌릴 수 없습니다. 실수로 인한 오류를 방지하려면 아래와 같이 IF EXISTS 옵션을 함께 사용하는 것이 좋습니다.
$sql = "DROP TABLE IF EXISTS tutorials_tbl";
이 옵션을 사용하면 존재하지 않는 테이블을 삭제하려 할 때 치명적인 오류 대신 경고만 발생하므로, 스크립트가 중단되지 않고 안전하게 실행됩니다.