English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 기본 튜토리얼

PHP 고급 튜토리얼

PHP & MySQL

PHP 참조 매뉴얼

PHP MySQL 연결

이 튜토리얼에서는 PHP로 MySQL 서버에 연결하는 방법을 배웁니다.

PHP를 통해 MySQL에 연결하는 방법

MySQL 데이터베이스에 데이터를 저장하거나 액세스하려면, 먼저 MySQL 데이터베이스 서버에 연결해야 합니다. PHP는 MySQL 서버에 연결하는 두 가지 다른 방법을 제공합니다:MySQLi(개선된 MySQL)과PDO(PHP 데이터 객체) 확장자.

PDO 확장자는 이동성이 더 높고 더 많은 십이 개 이상의 데이터베이스를 지원하지만, 이름에서 알 수 있듯이 MySQLi 확장자는 MySQL 데이터베이스만을 지원합니다. 그러나 MySQLi 확장자는 MySQL 데이터베이스 서버에 연결하고 그 안에서 쿼리를 실행하는 간편한 방법을 제공합니다. PDO와 MySQLi는 모두 대상형 API를 제공하지만, MySQLi는 초보자에게 더 쉽게 이해할 수 있는 절차적 API도 제공합니다.

ヒント:PDO 확장에 비해 PHP의 MySQLi 확장은 속도와 기능적 장점을 동시에 제공하므로, 특정 MySQL 프로젝트에 대해 더 나은 선택이 될 수 있습니다.

MySQL 데이터베이스 서버에 연결

PHP에서는 mysqli_connect() 함수를 사용하여 이 작업을 쉽게 수행할 수 있습니다. PHP와 MySQL 데이터베이스 서버 간의 모든 통신은 이 연결을 통해 이루어집니다. MySQLi와 PDO 확장을 사용하여 MySQL에 연결하는 세 가지 기본 문법은 다음과 같습니다:

문법: MySQLi, 프로그래밍 방식

$link = mysqli_connect("hostname", "username", "password", "database");

문법: MySQLi, 객체 지향적 방식

$mysqli = new mysqli("hostname", "username", "password", "database");

문법: PHP 데이터 객체 (PDO) 방식

$pdo = new PDO("mysql:host=hostname;dbname=database", "username", "password");

위 문법에서 hostname 파라미터는 호스트 이름(예: localhost)이나 MySQL 서버의 IP 주소를 지정하며, username과 password 파라미터는 MySQL 서버에 접근하기 위한 자격 증명을 지정합니다. 데이터베이스 파라미터(제공된 경우)는 MySQL 실행 쿼리에서 사용할 데이터베이스를 지정합니다.

아래의 예제는 MySQLi를 사용하여 어떻게 연결할 수 있는지 보여줍니다.프로그램객체 지향적방식)과 PDO 확장으로 MySQL 데이터베이스 서버에 연결할 수 있습니다.

온라인 예제

<?php
/* MySQL 서버 연결을 시도합니다. MySQL이 실행 중인 것을 가정합니다.
기본 설정된 서버(비밀번호 없는 사용자 "root") */
$link = mysqli_connect("localhost", "root", "");
 
// 연결 확인
if($link === false){
    die("에러: 연결할 수 없습니다." . mysqli_connect_error());
}
 
//호스트 정보 출력
echo "연결 성공. 호스트 정보: " . mysqli_get_host_info($link);
?>
<?php
/* MySQL 서버 연결을 시도합니다. MySQL이 실행 중인 것을 가정합니다.
기본 설정된 서버(비밀번호 없는 사용자 "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// 연결 확인
if($mysqli === false){
    die("에러: 연결할 수 없습니다." . $mysqli->connect_error);
}
 
//호스트 정보 출력
echo "연결 성공. 호스트 정보: ". $mysqli->host_info;
?>
<?php
/*MySQL 서버 연결을 시도합니다. MySQL이 실행 중인 것을 가정합니다.
기본 설정된 서버(비밀번호 없는 사용자 "root") */
try{
    $pdo = new PDO("mysql:host=localhost", "root", "");
    
    //PDO의 오류 모드를 예외로 설정합니다
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    //호스트 정보 출력
    echo "연결 성공. 호스트 정보: ". $pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));
} catch(PDOException $e){
    die("에러: 연결할 수 없음. ". $e->getMessage());
}
?>

주의: MySQL 데이터베이스 서버의 기본 사용자 이름은 root이며 비밀번호가 없습니다. 그러나 데이터베이스가 침입되거나 무단 접근을 방지하기 위해 MySQL 계정에 비밀번호를 설정해야 합니다.

ヒント:PDO::ATTR_ERRMODE 속성을 PDO::ERRMODE_EXCEPTION으로 설정하면 PDO가 데이터베이스 오류가 발생할 때 예외를 투げ던지도록 합니다.

MySQL 데이터베이스 서버 연결을 닫기

스크립트 실행이 끝나면 MySQL 데이터베이스 서버와의 연결은 자동으로 닫히지만, 이를 미리 닫고 싶다면 PHP mysqli_close() 함수를 호출하면 됩니다.

온라인 예제

<?php
/*MySQL 서버 연결을 시도합니다. MySQL이 실행 중인 것을 가정합니다.
기본 설정된 서버(비밀번호 없는 사용자 "root")*/
$link = mysqli_connect("localhost", "root", "");
 
// 연결 확인
if($link === false){
    die("에러: 연결할 수 없습니다." . mysqli_connect_error());
}
 
// 호스트 정보 출력
echo "연결 성공. 호스트 정보: " . mysqli_get_host_info($link);
 
// 연결을 닫기
mysqli_close($link);
?>
<?php
/*MySQL 서버 연결을 시도합니다. MySQL이 실행 중인 것을 가정합니다.
기본 설정된 서버(비밀번호 없는 사용자 "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// 연결 확인
if($mysqli === false){
    die("에러: 연결할 수 없습니다." . $mysqli->connect_error);
}
 
// 호스트 정보 출력
echo "연결 성공. 호스트 정보: " . $mysqli->host_info;
 
// 연결을 닫기
$mysqli->close();
?>
<?php
/* MySQL 서버 연결을 시도합니다. MySQL이 실행 중인 것을 가정합니다.
기본 설정된 서버(비밀번호 없는 사용자 "root") */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    
    //PDO의 오류 모드를 예외로 설정합니다
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    //호스트 정보 출력
    echo "연결 성공. 호스트 정보: " . $pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));
} catch(PDOException $e){
    die("에러: 연결할 수 없습니다." . $e->getMessage());
}
 
//연결을 닫기
unset($pdo);
?>