PHP는 MySQL 데이터베이스를 선택할 수 있도록 mysql_select_db() 함수를 기본적으로 제공합니다. 이 함수는 MySQL 서버에 연결한 후, 이후에 실행되는 모든 쿼리가 어떤 데이터베이스에서 수행될지 지정하는 역할을 합니다.
기본 사용 문법
함수의 기본 형태는 다음과 같습니다.
mysql_select_db(데이터베이스명, 연결_리소스);
두 번째 매개변수인 연결 리소스는 생략할 수 있으며, 생략하면 가장 최근에 열린 MySQL 연결이 자동으로 사용됩니다.
예제
다음 예제는 PHP 스크립트를 이용해 'TUTORIALS'라는 이름의 데이터베이스를 선택하는 전체 과정을 보여줍니다.
<html>
<head>
<title>Selecting MySQL Database</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'guest';
$dbpass = 'guest123';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_select_db( 'TUTORIALS' );
mysql_close($conn);
?>
</body>
</html>코드 설명
위 예제의 동작 순서를 단계별로 살펴보면 다음과 같습니다.
1. 연결 정보 설정 – 호스트 주소($dbhost), 사용자 계정($dbuser), 비밀번호($dbpass)를 변수에 저장합니다.
2. 서버 연결 – mysql_connect() 함수로 MySQL 서버에 접속하고, 실패 시 die() 함수를 통해 오류 메시지와 함께 스크립트를 종료합니다.
3. 데이터베이스 선택 – 연결에 성공하면 mysql_select_db() 함수를 호출하여 'TUTORIALS' 데이터베이스를 활성화합니다.
4. 연결 종료 – 작업이 끝나면 mysql_close() 함수로 연결을 닫아 리소스를 반환합니다.
참고 사항
mysql_select_db()를 포함한 구식 mysql_* 계열 함수는 PHP 5.5부터 지원 중단(deprecated)되었으며, PHP 7부터 완전히 제거되었습니다. 따라서 실제 프로젝트에서는 보안과 성능이 개선된 mysqli 확장 또는 PDO(PHP Data Objects)를 사용하는 것이 좋습니다.
예를 들어 mysqli 방식에서는 다음과 같이 데이터베이스를 선택할 수 있습니다.
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, 'TUTORIALS');
mysqli_connect()는 네 번째 인자로 데이터베이스 이름을 직접 받을 수 있어 코드가 더 간결해집니다. 또는 연결 후 mysqli_select_db($conn, 'TUTORIALS')를 호출해도 동일하게 동작합니다.