PHP에서 PDO를 통한 데이터베이스 연결
PDO를 통해 데이터베이스에 연결해 봅시다. 먼저 접속 정보를 변수에 저장합니다:
<?php
$host = 'localhost'; // 호스트명 (일반적으로 항상 이렇습니다)
$db = 'test'; // 데이터베이스 이름
$user = 'root'; // DB 접속 사용자명
$pass = 'root'; // DB 접속 비밀번호
?>
이제 특별한 형식으로 문자열을 구성해야 합니다.
이 문자열에는 사용할 DB의 유형(일반적으로 'mysql'),
호스트명, 데이터베이스 이름을 지정해야 합니다:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
그런 다음 작업 과정에서 사용할 PDO 옵션 배열을 생성합니다 (지금은 자세히 이해하지 않아도 됩니다):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
이제 위에서 선언한 변수들을 사용하여 데이터베이스에 연결할 수 있습니다:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
위 코드는 데이터베이스에 연결을 수행하거나 예외를 발생시킵니다.
따라서 연결을 try-catch 구문으로 감싸는 것이 더 올바른 방법입니다:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
전체 코드는 다음과 같습니다:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // DB 접속 사용자명
$pass = ''; // DB 접속 비밀번호
$charset = 'utf8';
$dsn = "mysql:host=$host; dbname=$db; charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
본 강의에서 설명한 방법으로 여러분의 데이터베이스에 연결을 설정하세요.