Forum und email

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 servers à 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

PDO_ODBC sur les systèmes UNIX
  1. À 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/
    
    Pour construire PDO_ODBC avec la saveur ibm-db2, vous devez avoir précédemment installé les en-têtes de développement de l'application de DB2 sur la même machine sur laquelle vous compilez PDO_ODBC. Les en-têtes de développement de l'application DB2 sont une option d'installation dans les serveurs DB2 et sont aussi disponibles en tant que DB2 Application Development Client gratuitement disponibles pour téléchargement à partir du » site. IBM DB2 Universal Database.

    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
    
    Si vous ne spécifiez pas d'emplacement pour les bibliothèques et les en-têtes de unixODBC à la commande configure, PDO_ODBC prendra par défaut /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.

Options de Configuration PDO_ODBC
NomPar défaut ModifiableHistorique
pdo_odbc.connection_pooling "strict" PHP_INI_ALL Disponible depuis PHP 5.1.0.
pdo_odbc.db2_instance_name NULL PHP_INI_SYSTEM  
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Directives du php.ini.

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. 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.

Warning

relaxed ne devrait pas être utilisé sur les serveurs partagés, pour des raisons de sécurité.

Tip

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.