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]]] )

警告

この関数は、 実験的なステータスにあります。これは、この関数の 動作、関数名、ここで書かれていること全てがPHPの将来のバージョンで予告 なく変更される可能性があることを意味します。注意を喚起するとともに自分 のリスクでこの関数を使用してください。

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

パラメータ

dsn

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

一般に、DSNはPDOドライバ名の後にコロンが続き、 各PDOドライバに固有の接続構文が続きます。 各ドライバの例を以下に示します。

PDO_DBLIB

DSN接頭時は、コンパイル時にリンクされたライブラリの種類により sybase:または mssql:となります。

sybase:host=localhost; dbname=testdb

mssql:host=localhost; dbname=testdb

PDO_FIREBIRD

firebird:User=john;Password=mypass;Database=DATABASE.GDE;DataSource=localhost;Port=3050

PDO_MYSQL

mysql:host=localhost;dbname=testdb

PDO_OCI

tnsnames.oraを使用するには、以下のようにします:

oci:mydb

instantclientを使用するには、以下のようにします:

oci:dbname=//localhost:1521/testdb

PDO_ODBC

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

DSN=SAMPLE は ODBCドライバマネージャで設定されたSAMPLE データソースを参照します

PDO_PGSQL

pgsql:host=localhost port=5432 dbname=testdb user=john password=mypass

userpassword をDSNで指定した場合、 usernameおよび passwordパラメータはオプションとなることに注意して ください。 これらを指定した場合、接続文字列の最後に追加されます。

PDO_SQLITE

sqlite:/path/to/database

データベースをメモリ上に作成する場合は、以下のようにしてください:

sqlite::memory:

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
// Connect to an ODBC database using driver invocation
$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
// Connect to an ODBC database using driver invocation
$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
// Connect to an ODBC database using an alias
$dsn = 'mydb';
$user = '';
$password = '';

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

?>