Introduction
Ces fonctions vous permettent un accès aux IBM DB2 Universal Database,
IBM Cloudscape et Apache Derby qui utilisent DB2 Call Level
Interface (DB2 CLI).
Pré-requis
Pour se connecter à des bases de données IBM DB2 Universal Database pour
linux, UNIX et Windows ou IBM Cloudscape ou Apache Derby, vous devez
installer un client IBM DB2 Universal Database sur le même ordinateur qui
utilise PHP. Cette extension a été développé et testé avec DB2 Version
8.2.
Pour se connecter à des bases de données IBM DB2 Universal Database pour
z/OS ou iSeries, vous aurez aussi besoin de IBM DB2 Connect ou
l'équivalent d'un programme DRDA.
Requirements on Linux or Unix
L'utilisateur appelant l'exécutable PHP ou module SAPI doit spécifier
l'instance DB2 avant d'accéder à ces fonctions. Vous pouvez spécifier le
nom de l'instance DB2 dans php.ini en utilisant l'option de
configuration ibm_db2.instance_name ou vous pouvez
approvisionner le profile de l'instance DB2 avant d'appeler l'exécutable PHP.
Si vous avez créée une instance DB2 nommée db2inst1
dans /home/db2inst1, par exemple, vous pouvez
ajouter la ligne suivante à votre php.ini :
ibm_db2.instance_name=db2inst1
Si vous ne spécifiez pas cette option dans
php.ini, vous devez exécuter
la commande suivante pour modifier vos variables d'environnement pour
autoriser l'accès à DB2 :
bash$ source /home/db2inst1/sqllib/db2profile
Pour permettre votre PHP sur votre serveur web d'accéder à ces fonctions,
vous devez ajouter la même commande à votre script de démarrage de votre
serveur Web (typiquement
/etc/init.d/httpd or
/etc/init.d/apache).
Installation
Pour compiler l'extension ibm_db2, les fichiers d'en-tête et de bibliothèques
de l'application de développement de DB2 doivent être présents sur votre
système. DB2 ne les installe pas par défaut, vous devrez donc retourner à
l'installation de DB2 et ajouter cette option. Les en-têtes des fichiers sont
inclus avec le client de développement d'application DB2, disponible librement
au téléchargement depuis le » support du site
de la base de données universelle.
Si vous ajoutez les fichiers d'en-têtes et de bibliothèques de l'application de
développement de DB2 sur un système Linux ou Unix où DB2 est déjà installé,
vous devez lancer la commande db2iupdt -e pour mettre à
jour les liens symboliques dans les fichiers d'en-têtes et de bibliothèques de
vos exemples DB2.
ibm_db2 est une extension » PECL, alors suivez
les instructions présentes dans Chapitre 7, Installation d'extensions PECL pour
installer l'extension ibm_db2 pour PHP. Tapez la commande
configure pour pointer vers l'emplacement de vos fichiers
d'en-têtes et de bibliothèques de DB2 comme suit :
bash$ ./configure --with-IBM_DB2=/chemin/vers/DB2
La commande
configure prend la valeur par défaut de
/opt/IBM/db2/V8.1.
Note pour les utilisateurs de IIS:
Si vous utilisez le driver ibm_db2 avec IIS (Microsoft Internet Information Server),
vous devez faire ce qui suit :
Installez DB2 avec le système de sécurité étendu.
|
Ajoutez le chemin vers le binaire PHP à la variable d'environnement du système (PATH)
(default C:\php\).
|
Créé une autre variable d'environnement contenant le chemin vers le fichier PHP.INI (eg: PHPRC = C:\php\).
|
Ajoutez l'utilisateur IUSR_COMPUTERNAME au groupe DB2USERS.
|
Configuration à l'exécution
Le comportement de ces fonctions est
affecté par la configuration dans le fichier php.ini.
Tableau 122. Options de configuration ibm_db2
Nom | Par défaut | Modifiable | Historique |
---|
ibm_db2.binmode | "1" | PHP_INI_ALL | |
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | |
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | |
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM | |
Voici un éclaircissement sur
l'utilisation des directives de configuration.
-
ibm_db2.binmode
(entier)
Cette option contrôle le mode utilisé pour convertir à partir ou vers
les données binaires dans l'application PHP.
1 (DB2_BINARY)
2 (DB2_CONVERT)
3 (DB2_PASSTHRU)
-
ibm_db2.i5_allow_commit
integer
Cette option contrôle le mode d'envoi utilisé pour les schémas de
collections i5 dans l'application PHP.
-
ibm_db2.i5_dbcs_alloc
(entier)
Cette option contrôle l'allocation de canevas internes de ibm_db2 pour
des tampons de colonne large DBCS.
-
ibm_db2.instance_name
(chaîne de caractères)
Sur les systèmes d'exploitation Linux et UNIX, cette option définit le
nom de l'instance à utiliser pour les connexions aux bases de données
cataloguées. Si cette option est utilisée, sa valeur prévaut sur la
variable d'environnement DB2INSTANCE.
Cette option est ignorée sur les systèmes d'exploitation Windows.
Constantes pré-définies
Ces constantes sont définies par cette
extension, et ne sont disponibles que si cette extension a été compilée avec
PHP, ou bien chargée au moment de l'exécution.
-
DB2_BINARY
(entier)
-
Spécifie que les données binaires seront retournées comme elles sont.
Ceci est le mode par défaut.
-
DB2_CONVERT
(entier)
-
Spécifie que les données binaires seront converties en hexadécimal et
retournées comme une chaîne ASCII.
-
DB2_PASSTHRU
(entier)
-
Spécifie que les données binaires seront converties en valeur NULL.
-
DB2_SCROLLABLE
(entier)
-
Spécifie le curseur flottant pour une déclaration de ressource. Ce
mode permet un accès aléatoire aux lignes du jeu de résultats, mais
présentement, il est supporté seulement par IBM DB2 Universal Database.
-
DB2_FORWARD_ONLY
(entier)
-
Spécifie un curseur d'avancement seul pour une déclaration de ressource.
Il s'agit de la valeur par défaut de ce type de curseur, et il est
supporté par tous les serveurs de base de données.
-
DB2_PARAM_IN
(entier)
-
Spécifie que la variable PHP doit être lié comme étant un paramètre
ENTRANT pour une procédure d'enregistrement.
-
DB2_PARAM_OUT
(entier)
-
Spécifie que la variable PHP doit être lié comme étant un paramètre
SORTANT pour une procédure d'enregistrement.
-
DB2_PARAM_INOUT
(entier)
-
Spécifie que la variable PHP doit être lié comme étant un paramètre
ENTRANT/SORTANT pour une procédure d'enregistrement.
-
DB2_PARAM_FILE
(entier)
-
Spécifie que la colonne doit être lié directement à un fichier pour
entrée.
-
DB2_AUTOCOMMIT_ON
(entier)
-
Spécifie que autocommit doit être activé.
-
DB2_AUTOCOMMIT_OFF
(entier)
-
Spécifie que autocommit doit être désactivé.
-
DB2_DOUBLE
(entier)
-
Spécifie que la variable doit être lié à un type DOUBLE, FLOAT ou REAL.
-
DB2_LONG
(entier)
-
Spécifie que la variable doit être lié à un type SMALLINT, INTEGER ou
BIGINT.
-
DB2_CHAR
(entier)
-
Spécifie que la variable doit être lié à un type CHAR ou VARCHAR
-
DB2_CASE_NATURAL
(entier)
-
Spécifie que les noms de colonnes doivent être retournés dans leurs casses naturelles.
-
DB2_CASE_LOWER
(entier)
-
Spécifie que les noms de colonnes doivent être retournés en minuscule.
-
DB2_CASE_UPPER
(entier)
-
Spécifie que les noms de colonnes doivent être retournés en majuscule.
-
DB2_DEFERRED_PREPARE_ON
(entier)
-
Spécifie que la préparation déferrée doit être active pour la ressource de requête spécifiée.
-
DB2_DEFERRED_PREPARE_OFF
(entier)
-
Spécifie que la préparation déferrée doit être désactivée pour la ressource de requête spécifiée.
Types de ressources
L'extension ibm_db2 retourne des ressources de connexion, des ressources
de déclaration et des ressources de jeu de résultats.
Table des matières
- db2_autocommit —
Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de
données
- db2_bind_param —
Associe une variable PHP à un paramètre d'une requête SQL
- db2_client_info — Retourne un objet avec des propriétés qui décrivent le client de base de données DB2
- db2_close —
Ferme une connexion de base de données
- db2_column_privileges —
Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table
- db2_columns —
Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table
- db2_commit —
Valide la transaction
- db2_conn_error —
Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative
de connexion
- db2_conn_errormsg —
Retourne le dernier message d'erreur de connexion ainsi que la valeur
de SQLCODE
- db2_connect —
Retourne une connexion à une base de données
- db2_cursor_type —
Retourne le type de curseur utilisé par une ressource
- db2_escape_string —
Used to escape certain characters.
- db2_exec —
Exécute une requête SQL directement
- db2_execute —
Exécute une requête SQL préparée
- db2_fetch_array —
Retourne un tableau, indexé par la position des colonnes, représentant une
ligne du jeu de résultats
- db2_fetch_assoc —
Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu
de résultats
- db2_fetch_both —
Retourne un tableau, indexé par nom de colonne et position, représentant
une ligne du jeu de résultats
- db2_fetch_object —
Retourne un objet avec les propriétés représentant des colonnes dans la
ligne extraite
- db2_fetch_row —
Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne
demandée
- db2_field_display_size —
Retourne le maximum d'octets requis pour afficher une colonne
- db2_field_name —
Retourne le nom de la colonne du jeu de résultats
- db2_field_num —
Retourne la position du nom de la colonne du jeu de résultats
- db2_field_precision —
Retourne la précision de la colonne indiquée du jeu de résultats
- db2_field_scale —
Retourne l'échelle de la colonne indiquée du jeu de résultats
- db2_field_type —
Retourne le type de donnée de la colonne indiquée du jeu de résultats
- db2_field_width —
Retourne la largeur de la valeur courante de la colonne indiquée du
jeu de résultats
- db2_foreign_keys —
Retourne un jeu de résultats listant les clés étrangères d'une table
- db2_free_result —
Libère la mémoire associée à un jeu de résultats
- db2_free_stmt —
Libère la mémoire associée à la ressource indiquée
- db2_get_option — Retrieves an option value for a statement resource or a connection resource
- db2_lob_read —
Gets a user defined size of LOB files with each invocation
- db2_next_result —
Demande le prochain jeu de résultats de la ressource indiquée
- db2_num_fields —
Retourne le nombre de champs contenu du jeu de résultats
- db2_num_rows —
Retourne le nombre de lignes affectées par une requête SQL
- db2_pconnect —
Retourne une connexion persistante à une base de données
- db2_prepare —
Prépare une requête SQL à être exécutée
- db2_primary_keys —
Retourne un jeu de résultats listant les clés d'une table
- db2_procedure_columns —
Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement
- db2_procedures —
Retourne un jeu de résultats listant les procédures d'enregistrement
enregistrées dans la base de données
- db2_result —
Retourne une colonne d'une ligne d'un jeu de résultats
- db2_rollback —
Annule une transaction
- db2_server_info — Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2
- db2_set_option — Fixe des options pour une connexion ou des ressources
- db2_special_columns —
Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table
- db2_statistics —
Retourne un jeu de résultats listant les index et statistiques d'une table
- db2_stmt_error —
Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL
- db2_stmt_errormsg —
Retourne le dernier message d'erreur d'une requête SQL
- db2_table_privileges —
Retourne un jeu de résultats listant les tables et leurs privilèges
qui leur sont associées d'une base de données
- db2_tables —
Retourne un jeu de résultats listant les tables et leurs métadatas
qui leur sont associées d'une base de données