導入 (Previous) (Next) 接続

View this page in Last updated: Sun, 06 Jul 2008
English | Dutch | French | German | Hungarian | Japanese | Polish | Russian | Spanish | Plain HTML

DSN

DSN -- データソース名 (Data Source Name)

説明

PEAR::MDB2 でデータベースに接続するには、正しい DSN を作成しなければなりません。 この DSN は、以下のパーツから構成されています。

phptype: PHP で使用するデータベースバックエンド (例えば mysqlpgsql など)
dbsyntax: データベースで使用する SQL の構文など
protocol: 使用する通信プロトコル (例えば tcpunix など)
hostspec: ホストの指定 (hostname[:port])
database: DBMS サーバ上で使用するデータベース
username: ログイン時のユーザ名
password: ログイン時のパスワード
proto_opts: おそらく protocol と組み合わせて使用する
option: 追加の接続オプションを、URI クエリ文字列形式で指定する。 複数存在する場合は & で連結する。以下の表は、 オプションの一部を示したものです。

DSN は、連想配列あるいは文字列のいずれかの形式で指定することができます。 配列形式を推奨します。というのも、そうすれば余計なパース処理が不要となるからです (接続 の例を参照ください)。 文字列形式で示した DSN は次のようになります。

phptype(dbsyntax)://username:password@protocol+hostspec/database?option=value

さまざまな変化形があります。

phptype://username:password@protocol+hostspec:110//usr/db_file.db
phptype://username:password@hostspec/database
phptype://username:password@hostspec
phptype://username@hostspec
phptype://hostspec/database
phptype://hostspec
phptype:///database
phptype:///database?option=value&anotheroption=anothervalue
phptype(dbsyntax)
phptype

現在サポートしているデータベースバックエンドは次のとおりです。

fbsql  -> FrontBase
ibase  -> InterBase / Firebird (PHP 5 が必要です)
mssql  -> Microsoft SQL Server (Sybase 用ではありません。PHP を --with-mssql でコンパイルします)
mysql  -> MySQL
mysqli -> MySQL (新しい認証プロトコルをサポートしています) (PHP 5 が必要です)
oci8   -> Oracle 7/8/9/10
pgsql  -> PostgreSQL
querysim -> QuerySim
sqlite -> SQLite 2

このような DSN の書式もサポートしています。

phptype(syntax)://user:pass@protocol(proto_opts)/database

databaseoption の値、 username あるいは password に DSN の区切り文字として使用する文字が含まれている場合は、 それを URI の十六進エンコーディング方式でエスケープします。

: = %3a   / = %2f   @ = %40
+ = %2b   ( = %28   ) = %29
? = %3f   = = %3d   & = %26

警告

中には、すべてのデータベースバックエンドがサポートしているわけではない 機能もあることに注意しましょう。

導入 (Previous) (Next) 接続

Download Documentation Last updated: Sun, 06 Jul 2008
Do you think that something on this page is wrong? Please file a bug report or add a note.
User Notes:
Note by: mapopa@gmail.com
if you are using firebird on linux then you need to add an extra slash to the db path like this

$mdb2 =& MDB2::connect(’ibase://sysdba:masterkey@localhost//var/lib/firebird/2.1/data/employee.fdb’);


and you can check the result with the extra debug info

if (PEAR::isError($mdb2)) {
die($mdb2->getMessage(). ‘,’ . $mdb2->getDebugInfo());
Note by: nilya
If you use Firebird database, specify dbsyntax='firebird'.
For example, "ibase(firebird)://SYSDBA:masterkey@localhost/dbname".

In current version (MDB2_Driver_ibase 1.4.1) this value affects only limiting queries (by setLimit(limit,offset))