Fonctions ODBC et DB2 (PDO_ODBC)
Introduction
PDO_ODBC est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données par les pilotes de ODBC ou par la bibliothèque d'interface IBM DB2 Call Level (DB2 CLI). PDO_ODBC supporte actuellement trois "saveurs" différentes des pilotes de bases de données :
- ibm-db2
-
Supporte l'accès à IBM DB2 Universal Database, Cloudscape et Apache Derby Server à l'aide du client gratuit DB2.
- unixODBC
-
Supporte l'accès aux serveurs de base de données à l'aide du pilote de gestion unixODBC et les bases de données possédées par les pilotes ODBC.
- generic
-
Offre une option de compilation pour les pilotes de gestion ODBC qui ne sont pas explicitement supportés par PDO_ODBC.
Sur Windows, PDO_ODBC est construit dans le noyau de PHP par défaut. Il est lié avec le Windows ODBC Driver Manager, c'est pourquoi PHP peut se connecter à n'importe quelle base de données cataloguée comme étant un System DSN. De plus, PDO_ODBC est le pilote recommandé pour se connecter aux bases de données Microsoft SQL Server.
Installation
-
À partir de PHP 5.1, PDO_ODBC est inclus dans les sources de PHP. Vous pouvez compiler l'extension PDO_ODBC soit en statique ou en module partagé en utilisant les commandes configure suivantes.
- ibm_db2
-
./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
Si vous ne spécifiez pas d'emplacement pour les bibliothèques et les en-têtes de DB2 à la commande configure, PDO_ODBC prendra par défaut /home/db2inst1/sqllib.
- unixODBC
-
./configure --with-pdo-odbc=unixODBC,/usr/local
- generic
-
./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags
Configuration à l'exécution
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Nom | Défaut | Modifiable | Historique |
---|---|---|---|
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Disponible depuis PHP 5.1.0. |
pdo_odbc.db2_instance_name | NULL |
PHP_INI_SYSTEM | Disponible depuis PHP 5.1.1. Cette fonctionnalité obsolète sera certainement supprimée dans le futur. |
Voici un éclaircissement sur l'utilisation des directives de configuration.
-
pdo_odbc.connection_pooling
string -
Pour mettre en commun les connexions ODBC. Peut être "strict", "relaxed" ou "off" (égal à ""). Le paramètre décrit comment la gestion de la connexion stricte devrait être lorsque les paramètres de connexion se ressemblent pour des connexions mises en commun.
strict
est la valeur par défaut recommandée et permettra l'utilisation des connexions en cache lorsque des paramètres de connexion similaires sont utilisés.relaxed
permettra d'utiliser des connexions mises en cache lorsque des paramètres de connexion similaire seront utilisés. Cela peut augmenter l'utilisation du cache au risque de noyer les informations de connexion entre (par exemple) des serveurs virtuels.Cette configuration peut seulement être changé à partir du fichier php.ini et affecte le processus entier; n'importe quels autres modules chargé dans le processus qui utilisent les bibliothèques ODBC sera aussi affecté, en incluant l'extension unifié ODBC.
Avertissementrelaxed
ne devrait pas être utilisé sur les serveurs partagés, pour des raisons de sécurité.AstuceLaissez cette configuration à la valeur par défaut
strict
à moins que vous ayez une bonne raison pour la changer. -
pdo_odbc.db2_instance_name
string -
Si vous compilez PDO_ODBC en utilisant db2, cette configuration fixe la valeur de la variable d'environnement DB2INSTANCE sur les systèmes d'exploitation Linux et UNIX au nom spécifié de l'instance DB2. Ceci permet à PDO_ODBC de résoudre le chemin des bibliothèques DB2 et de faire des connexions cataloguées aux bases de données DB2.
Cette configuration peut seulement être changée à partir du fichier php.ini et affecte le processus entier; n'importe quels autres modules chargés dans le processus qui utilisent les même bibliothèques ODBC seront aussi affectés, incluant l'extension unifiée ODBC.
Cette configuration n'a aucun effet sur Windows.
Sommaire
- PDO_ODBC DSN — Connexion aux bases de données ODBC ou DB2