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 :
Supporte l'accès à IBM DB2 Universal Database
,
Cloudscape et Apache Derby Server à l'aide du client gratuit DB2 express-C.
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.
Offre une option de compilation pour les pilotes de gestion ODBC qui ne sont pas explicitement supportés par PDO_ODBC.
Sur Windows, php_pdo_odbc.dll doit être activé en tant qu'extension dans php.ini. 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.
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.
./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
DB2 Application Development Client
gratuitement
disponibles pour téléchargement à partir du
» site.
IBM developerWorks
.
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.
./configure --with-pdo-odbc=unixODBC,/usr/local
./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags
Les constantes ci-dessous sont
définies par ce pilote et seront seulement disponibles lorsque l'extension
aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution.
De plus, ces constantes spécifiques au pilote devraient être utilisées seulement
si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote
avec un autre pilote pourrait causer un comportement inattendu.
PDO::getAttribute() pourrait être utilisé pour obtenir
l'attribut PDO::ATTR_DRIVER_NAME
pour vérifier le
pilote, si votre code peut fonctionner sur des pilotes multiples.
PDO::ODBC_ATTR_USE_CURSOR_LIBRARY
(int)
This option controls whether the ODBC cursor library is used. The ODBC cursor library supports some advanced ODBC features (e.g. block scrollable cursors), which may not be implemented by the driver. The following values are supported:
PDO::ODBC_SQL_USE_IF_NEEDED
(the default):
use the ODBC cursor library when needed.
PDO::ODBC_SQL_USE_DRIVER
:
never use the ODBC cursor library.
PDO::ODBC_SQL_USE_ODBC
:
always use the ODBC cursor library.
PDO::ODBC_ATTR_ASSUME_UTF8
(bool)
Windows only. If true
, UTF-16 encoded character data (CHAR
,
VARCHAR
and LONGVARCHAR
) is converted to
UTF-8 when reading from or writing data to the database.
If false
(the default), character encoding conversion may be done by the driver.
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 | |
pdo_odbc.db2_instance_name | null |
PHP_INI_SYSTEM | 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.
relaxed
ne devrait pas être utilisé sur les
serveurs partagés, pour des raisons de sécurité.
Laissez 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.