Pour vous connecter à une base de donnée à travers PEAR::DB, vous devez créer un DSN - data source name valide. Ce DSN est constitué des parties suivantes :
Le format d'un DSN dans sa forme la plus complète est :
phptype(dbsyntax)://username:password@protocol+hostspec/database?option=value
Plusieurs variations sont permises :
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=valeur&uneautreoption=uneautrevaleur phptype(dbsyntax) phptype
Actuellement, les pilotes de base de données suivants sont supportés
dbase -> dBase fbsql -> FrontBase (fonctionnel depuis DB 1.7.0) ibase -> InterBase (fonctionnel depuis DB 1.7.0) ifx -> Informix msql -> Mini SQL (fonctionnel depuis DB 1.7.0) mssql -> Microsoft SQL Server (PAS pour Sybase. Compilez PHP --with-mssql) mysql -> MySQL (pour les serveurs utilisant MySQL <= 4.0) mysqli -> MySQL (pour les serveurs utilisant MySQL >= 4.1) (nécessite PHP 5)(depuis DB 1.6.3) oci8 -> Oracle 7/8/9 odbc -> ODBC (Open Database Connectivity) pgsql -> PostgreSQL sqlite -> SQLite sybase -> Sybase
avec une version à jour de DB, vous pouvez utiliser un nouveau format
phptype(syntax)://user:pass@protocol(proto_opts)/database
Si votre username ou password contient des caractères utilisés pour délimter les parties DSN, vous pouvez les échapper avec un encodage hexadécimal des URI :
: = %3a / = %2f @ = %40 + = %2b ( = %28 ) = %29 ? = %3f = = %3d & = %26
Notez que certaines fonctionnalités peuvent ne pas exister dans tous les pilotes de base de données. Lisez le document sur le status de l'extension PEAR DB qui se trouve sur : /pear/base/dir/DB/doc/STATUS pour obtenir une liste détaillée à propos des fonctionnalités supportées par chaque pilote.
Connexion via une socket
mysql://user@unix(/path/to/socket)/pear
Connexion sur un port non standard
pgsql://user:pass@tcp(localhost:5555)/pear
Connexion à SQLite sur une machine Unix en utilisant des options
sqlite:////full/unix/path/to/file.db?mode=0666
Connexion à SQLite sur une machine Windows en utilisant des options
sqlite:///c:/full/windows/path/to/file.db?mode=0666
Connexion à MySQLi en utilisant SSL
mysqli://user:pass@localhost/pear?key=client-key.pem&cert=client-cert.pem
La connexion à MS Access requière des fois d'être connecté en tant que admin
odbc(access)://admin@/datasourcename
Connexion à ODBC avec un curseur spécifique
odbc(access)://admin@/datasourcename?cursor=SQL_CUR_USE_ODBC