MySQL 연결
MySQL extension
예전에는 PHP에서 MySQL 데이터베이스에 연결하기 위해 MySQL extension이라는 API를 사용했습니다.
MySQL extension은 mysql_로 시작하는 다양한 함수를 사용하여 MySQL 데이터베이스를 관리할 수 있었습니다.
하지만 이 API는 PHP 5.5.0부터는 사용을 권장하지 않고(deprecated) 있으며, PHP 7.0.0에서는 삭제되었습니다.
MySQL extension에 대한 더 자세한 사항은 MySQL 사용 수업에서 확인할 수 있습니다.
MySQLi와 PDO
따라서 현재 PHP에서 MySQL 데이터베이스에 연결하기 위해 사용할 수 있는 API는 다음과 같습니다.
1. MySQL improved extension(MySQLi extension)
2. PHP Data Objects(PDO)
위의 두 가지 API는 각각 장단점을 가지지만, MySQL 환경에서 성능상의 큰 차이를 보이지는 않습니다.
따라서 자신이 사용하기 편한 API를 선택하는 것이 좋습니다.
MySQLi를 다운받거나 MySQLi에 대한 더 자세한 사항을 알고 싶다면 다음 링크를 참고하면 됩니다.
PDO를 다운받거나 PDO에 대한 더 자세한 사항을 알고 싶다면 다음 링크를 참고하면 됩니다.
우리 수업에서는 PDO를 사용하여 MySQL 데이터베이스에 연결하고 관리하는 방법을 살펴볼 것입니다.
서버와의 연결
PHP를 사용하여 MySQL 데이터베이스에 접속하기 위해서는 우선 서버와의 연결이 필요합니다.
다음 예제는 PDO를 사용하여 서버와 연결하는 예제입니다.
예제
<?php
$servername = "localhost";
$dbname = "testDB";
$user = "choi";
$password = "0219";
try
{
① $connect = new PDO('mysql:host=$servername;dbname=$dbname', $user, $password);
② $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "서버와의 연결 성공!";
}
③ catch(PDOException $ex)
{
echo "서버와의 연결 실패! : ".$ex->getMessage()."<br>";
}
?>
위 예제의 ①번 라인에서는 서버 이름, 데이터베이스 이름, 사용자명과 비밀번호를 전달하여 새로운 PDO 객체를 생성합니다.
②번 라인에서는 생성된 PDO 객체에 에러 모드(error mode)를 설정하고 있습니다.
이렇게 에러 모드를 설정하면, PDO 생성자는 에러가 발생할 때마다 PDOException 예외를 던질 것입니다.
서버와의 연결 종료
이렇게 생성된 서버와의 연결은 PHP 스크립트가 끝나면 자동으로 같이 종료됩니다.
하지만 PHP 스크립트가 끝나기 전에 서버와의 연결을 종료하고 싶다면, 다음 예제처럼 PDO 객체에 null을 대입하면 됩니다.
예제
<?php
$connect= null;
?>