説明
データベースに接続する際には、関数
connect()を使用します。
この関数は、有効なDSN
を第 1 パラメータとして要求します。
このパラメータには、文字列あるいは配列のいずれかを指定できます。
配列を使用する場合、
指定した配列がデフォルト情報とマージされます。
$dsn = array(
'phptype' => false,
'dbsyntax' => false,
'username' => false,
'password' => false,
'protocol' => false,
'hostspec' => false,
'port' => false,
'socket' => false,
'database' => false,
); |
パラメータで指定することでデフォルト値を上書きでき、
指定しなかった残りの要素はデフォルト値がそのまま使用されます。
第 2 パラメータは、
このパッケージのためのランタイム構成設定を含むことができるオプションの
$options配列です。
利用可能な設定について、より詳細な情報は
setOption()を参照してください。
成功時にデータベースクラスの新規インスタンスを取得出来ます。
isError()
によりこの返り値を確認することを強く推奨します。
データベースクラスのインスタンスから接続を切断するには、関数 disconnect()
を使用します。
例 39-1接続と切断 <?php
require_once 'DB.php';
$dsn = 'pgsql://someuser:apasswd@localhost/thedb';
$options = array(
'debug' => 2,
'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
}
// ...
$db->disconnect();
?> |
|
例 39-2配列を DSN 情報に使用して接続する <?php
require_once 'DB.php';
$dsn = array(
'phptype' => 'pgsql,
'username' => 'someuser',
'password' => 'apasswd',
'hostspec' => 'localhost',
'database' => 'thedb',
);
$options = array(
'debug' => 2,
'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
}
?> |
DSN 配列を使用して SQLite に接続する場合、
mode 要素の値は文字列でなければいけません:
<?php
$dsn = array(
'phptype' => 'sqlite',
'database' => 'thedb',
'mode' => '0644',
);
?> |
|
例 39-3
配列を DSN 情報に使用し、SSL 経由で MySQLi に接続する
$options 配列の ssl 要素は、
SSL 作業をするために、TRUE に設定しなければなりません。
$dsn 配列(下記の例の cipher
から key)の各追加要素はオプションです。
<?php
require_once 'DB.php';
$dsn = array(
'phptype' => 'mysqli',
'username' => 'someuser',
'password' => 'apasswd',
'hostspec' => 'localhost',
'database' => 'thedb',
'key', => 'client-key.pem',
'cert' => 'client-cert.pem',
'ca' => 'cacert.pem',
'capath' => '/path/to/ca/dir',
'cipher' => 'AES',
);
$options = array(
'ssl' => true,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
}
?> |
|
例 39-4ソケット経由で PostgreSQL データベースに接続する <?php
require_once 'DB.php';
$dsn = 'pgsql://someuser:apasswd@unix(/tmp)/thedb';
$options = array(
'debug' => 2,
'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
}
?> |
|