Einführung - DSN

Einführung - DSN -- Der Data Source Name

Beschreibung

Um sich mit einer Datenbank über PEAR::DB zu verbinden, wird ein korrekter DSN (Data Source Name) benötigt. Ein DSN besteht aus folgenden Teilen:

phptype: der zu benutzende Datenbanktreiber (z.B. mysql , odbc etc.).
dbsyntax: die zu benutzende Datenbank hinsichtlich des SQL-Syntaxes. Wird ODBC in phptype eingesetzt, dann muss hier das DBMS angegeben werden, mit der sich der ODBC-Treiber verbinden soll. Beispiele: access, db2, mssql, navision, solid, etc.
protocol: zu verwendendes Kommunikationsprotokoll ( z.B. tcp, unix etc.).
hostspec: die Host-Angabe (hostname[:port])
database: die Datenbank im DBMS mit der sich verbunden werden soll.
username: der Benutzername für den Login
password: das Passwort für den Login
proto_opts: zusätzliche Optionen abhängig vom protocol-Eintrag
option: zusätzliche, optionale Verbindungsoptionen im URI-Format. Die Optionen müssen durch & getrennt werden.

Das vollständige Format des DSN:
phptype(dbsyntax)://username:password@protocol+hostspec/database?option=value

Eine Vielzahl von Variationen sind erlaubt:
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

Derzeit werden folgende DBMS unterstützt:
dbase  -> dBase
fbsql  -> FrontBase (funktioniert seit DB 1.7.0)
ibase  -> InterBase (funktioniert seit DB 1.7.0)
ifx    -> Informix
msql   -> Mini SQL (funktioniert seit DB 1.7.0)
mssql  -> Microsoft SQL Server (NICHT für Sybase. Kompilieren Sie PHP mit --with-mssql)
mysql  -> MySQL (for MySQL <= 4.0)
mysqli -> MySQL (for MySQL >= 4.1) (erfordert PHP 5) (seit DB 1.6.3)
oci8   -> Oracle 7/8/9
odbc   -> ODBC (Open Database Connectivity)
pgsql  -> PostgreSQL
sqlite -> SQLite
sybase -> Sybase

Mit einer aktuellen Version von DB kann ein zweites DSN-Format benutzt werden:
phptype(syntax)://user:pass@protocol(proto_opts)/database

Wenn die Werte für database, option, username oder password Zeichen enthalten, die als Trennzeichen im DSN benutzt werden, dann müssen diese kodiert werden:
: = %3a   / = %2f   @ = %40
+ = %2b   ( = %28   ) = %29
? = %3f   = = %3d   & = %26

Warnung

Unter Umständen werden nicht alle Funktionen von PEAR:DB durch den jeweiligen Datenbanktreiber unterstützt. Eine Übersicht dazu erhalten Sie unter: /pear/base/dir/DB/doc/STATUS. Diese Datei enthält eine detailierte Liste darüber, welche Funktionen jeweils unterstützt werden.

Beispiel