Introduction - DSN

Introduction - DSN -- Le nom du pilote de base de données (The Data Source Name)

Description

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 :

phptype: Pilote de base de données utilisé par PHP (i.e. mysql, odbc etc.)
dbsyntax: Base de données utilisées en fonction de la syntaxe SQL, etc. Lorsque vous utilisez ODBC comme phptype, configurez ce paramètre au type du DBMS auquel se connecte ODBC. Par exemple : access, db2, mssql, navision, solid, etc.
protocol: Le protocole de communication à utiliser ( i.e. tcp, unix etc.)
hostspec : Spécification de l'hôte (hostname[:port])
database : Base de données à utiliser sur le serveur
username : Nom d'utilisateur de la base de données
password : Mot de passe de l'utilisateur
proto_opts : Peut être utilisé avec protocol
option : Options de connexion additionelles au format d'une URI. Les options sont séparées par des &

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

Avertissement

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.

Exemple