PDO::__construct

(no version information, might be only in CVS)

PDO::__construct --  データベースへの接続を表す PDO インスタンスを生成する

説明

PDO PDO::__construct ( string dsn [, string username [, string password [, array driver_options]]] )

指定されたデータベースへの接続を表すPDOインスタンスを生成します。

パラメータ

dsn

データソース名(Data Source Name)またはDSN。データベースに接続するために 必要な情報が含まれます。

一般に、DSNはPDOドライバ名の後にコロンが続き、 各PDOドライバに固有の接続構文が続きます。より多くの情報は PDO driver-specific documentation にあります。

dsn パラメータは、データベースへの接続を生成する ために必要な引数を指定する方法として、3種類の方法をサポートします。

ドライバ呼び出し

dsn contains the full DSN.

URI呼び出し

dsn は、uri:の後に DSN文字列を含むファイルの位置を定義するURIが続く形式となります。 このURIには、ローカルファイルまたはリモートURLを指定することができます。

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

エイリアス

dsn は、DSN文字列を定義する php.inipdo.dsn.nameへ マップする名前name からなります。

注意: エイリアスは、.htaccesshttpd.confではなく、 php.iniで定義する必要があります。

username

DSN文字列のユーザ名。このパラメータは、いくつかのPDOドライバではオプションです。

password

パスワード。DSN文字列で必要とされる場合に指定。

driver_options

ドライバ固有の接続オプションを指定するキー=> 値の配列。

返り値

成功時にPDOオブジェクトを返します。

エラー / 例外

PDO::construct() は、 指定されたデータベースへの接続に失敗した場合、 PDOException を投げます。

例 1. ドライバ呼び出しによりPDOインスタンスを生成する

<?php
/* ドライバ呼び出しを使用して ODBC データベースに接続する */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    
$dbh = new PDO($dsn, $user, $password);
}
catch (PDOException $e) {
    echo
'Connection failed: ' . $e->getMessage();
}

?>

例 2. URI呼び出しによりPDOインスタンスを生成する

以下の例では、ファイル /usr/local/dbconnect が存在し、 PHPがこのファイルを読み込む権限を有していることを仮定します。 このファイルには、 PDO_ODBCによりDB2データベースに接続するためのPDO DSNが 含まれています。

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

これにより、PHPスクリプトでは、単にuri: パラメータを渡し、 ファイルのURIを示すだけでデータベース接続を作成することができるようになります。

<?php
/* ドライバ呼び出しを使用して ODBC データベースに接続する */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

try {
    
$dbh = new PDO($dsn, $user, $password);
}
catch (PDOException $e) {
    echo
'Connection failed: ' . $e->getMessage();
}

?>

例 3. エイリアスによりPDOインスタンスを生成する

以下の例では、php.ini にエイリアスmydbのみで MySQLデータベースに接続できるようにするための以下のエントリが含まれることを 仮定します。
[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"

<?php
/* エイリアスを使用して ODBC データベースに接続する */
$dsn = 'mydb';
$user = '';
$password = '';

try {
    
$dbh = new PDO($dsn, $user, $password);
}
catch (PDOException $e) {
    echo
'Connection failed: ' . $e->getMessage();
}

?>