PDO::__construct
データベースへの接続を表す PDO インスタンスを生成する
説明
public PDO::__construct(
string $dsn
,
stringnull $username
= null
,
#[\SensitiveParameter]stringnull $password
= null
,
arraynull $options
= null
)
パラメータ
-
dsn
-
データソース名(Data Source Name)またはDSN。データベースに接続するために
必要な情報が含まれます。
一般に、DSNはPDOドライバ名の後にコロンが続き、
各PDOドライバに固有の接続構文が続きます。より多くの情報は
PDO driver-specific documentation
にあります。
dsn
パラメータは、データベースへの接続を生成する
ために必要な引数を指定する方法として、3種類の方法をサポートします。
-
ドライバ呼び出し
-
dsn
に完全な DSN を指定します。
-
URI 呼び出し
-
dsn
は、uri:
の後に
DSN 文字列を含むファイルの位置を定義する URI が続く形式となります。
この URI には、ローカルファイルまたはリモート URL を指定することができます。
uri:file:///path/to/dsnfile
-
エイリアス
-
dsn
は、DSN 文字列を定義する
php.ini の pdo.dsn.name
へマップする名前 name
からなります。
注意:
エイリアスは、.htaccess や httpd.conf ではなく、
php.ini で定義する必要があります。
-
username
-
DSN 文字列のユーザー名。このパラメータは、いくつかの PDO ドライバではオプションです。
-
password
-
DSN 文字列のパスワード。このパラメータは、いくつかの PDO ドライバではオプションです。
-
options
-
ドライバ固有の接続オプションを指定するキー=> 値の配列。
エラー / 例外
指定されたデータベースへの接続に失敗した場合、
PDO::ATTR_ERRMODE
が設定されているかどうかに関わらず、
PDOException をスローします。
例
例1 ドライバ呼び出しにより PDO インスタンスを生成する
<?php
$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
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';
$dbh = new PDO($dsn, $user, $password);
?>
例3 エイリアスにより PDO インスタンスを生成する
以下の例では、php.ini にエイリアス mydb
のみで
MySQL データベースに接続できるようにするための以下のエントリが含まれることを
仮定します。
[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
$dsn = 'mydb';
$user = '';
$password = '';
$dbh = new PDO($dsn, $user, $password);
?>