PDO::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::__construct — 데이터베이스에 대한 연결을 나타내는 PDO 인스턴스를 생성합니다.


설명

public PDO::__construct(
    string $dsn,
    ?string $username = null,
    ?string $password = null,
    ?array $options = null
)
                

요청된 데이터베이스에 대한 연결을 나타내는 PDO 인스턴스를 만듭니다.


매개변수

dsn
데이터 소스 이름(DSN)에는 데이터베이스에 연결하는 데 필요한 정보가 포함되어 있습니다.

일반적으로 DSN은 PDO 드라이버 이름, 콜론, PDO 드라이버별 연결 구문으로 구성됩니다. 추가 정보는 PDO 드라이버 관련 문서에서 사용할 수 있습니다.

dsn 매개변수는 데이터베이스 연결을 작성하는 데 필요한 인수를 지정하는 세 가지 다른 메서드를 지원합니다.

Driver invocation
dsn은 전체 DSN을 포함합니다.
URI invocation
dsnuri: 다음에 DSN 문자열을 포함하는 파일의 위치를 ​​정의하는 URI로 구성됩니다. URI는 로컬 파일 또는 원격 URL을 지정할 수 있습니다.

uri:file:///path/to/dsnfile

Aliasing
dsn은 DSN 문자열을 정의하는 php.inipdo.dsn.name에 매핑되는 name 이름으로 구성됩니다.

메모: 별칭은 .htaccess 또는 httpd.conf가 아닌 php.ini에 정의되어야 합니다.

username
DSN 문자열의 사용자 이름입니다. 이 매개변수는 일부 PDO 드라이버의 경우 선택사항입니다.
passwd
DSN 문자열의 암호입니다. 이 매개변수는 일부 PDO 드라이버의 경우 선택사항입니다.
options
드라이버별 연결 옵션의 key=>value 배열입니다.

오류/예외

PDO::__construct()는 현재 설정된 PDO::ATTR_ERRMODE에 관계없이 요청된 데이터베이스에 대한 연결 시도가 실패하면 PDOException을 발생시킵니다.


Examples

예제 #1 드라이버 호출을 통해 PDO 인스턴스 생성

                  
<?php
/* Connect to a MySQL database using driver invocation */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);

?>
                  
                

예제 #2 URI 호출을 통해 PDO 인스턴스 생성

다음 예에서는 /usr/local/dbconnect 파일이 PHP가 파일을 읽을 수 있도록 하는 파일 권한이 있다고 가정합니다. 파일에는 PDO_ODBC 드라이버를 통해 DB2 데이터베이스에 연결하기 위한 PDO DSN이 포함되어 있습니다.

odbc:DSN=SAMPLE;UID=john;PWD=mypass
                

그런 다음 PHP 스크립트는 단순히 uri: 매개변수를 전달하고 파일 URI를 지정하여 데이터베이스 연결을 생성할 수 있습니다.

                  
<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

$dbh = new PDO($dsn, $user, $password);

?>
                  
                

예제 #3 별칭을 사용하여 PDO 인스턴스 만들기

다음 예에서는 php.inimydb라는 별칭만 사용하여 MySQL 데이터베이스에 연결할 수 있는 다음 항목이 포함되어 있다고 가정합니다.

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
                

                  
<?php
/* Connect to an ODBC database using an alias */
$dsn = 'mydb';
$user = '';
$password = '';

$dbh = new PDO($dsn, $user, $password);

?>