LXXI. ODBC unifié

Introduction

En plus du support de l'ODBC normal, l'ODBC unifié de PHP vous donne accès à diverses bases de données qui ont emprunté la sémantique des API ODBC pour implémenter leur propres API. Au lieu de maintenir de multiples pilotes qui sont similaires, ces pilotes ont été rassemblés dans un jeu de fonctions ODBC uniques.

Les bases de données suivantes sont supportées par l'ODBC unifié : Adabas D, IBM DB2, iODBC, Solid, et Sybase SQL Anywhere.

Note : Il n'y a pas d'ODBC utilisé lors des connexions aux bases de données ci-dessus. Les fonctions que vous utiliserez portent des noms évocateurs, et utilisent les mêmes syntaxes que leurs cousines d'ODBC. L'exception à ceci est iODBC. En compilant PHP avec le support iODBC, vous pourrez utiliser n'importe quel pilote compatible ODBC avec vos applications PHP. iODBC est mis à jour sur OpenLink Software. Plus d'informations sur iODBC, ainsi qu'un HOWTO (en anglais), sont disponibles sur www.iodbc.org.

Pré-requis

Pour accéder à l'une des bases de données supportées, il faut que les librairies équivalentes soient installées.

Installation

--with-adabas[=dir]

Inclut le support Adabas D. DIR est le dossier d'installation d'Adabas D. Par défaut, c'est /usr/local.

--with-sapdb[=dir]

Inclut le support SAP DB. DIR est le dossier d'installation de SAP DB. Par défaut, c'est /usr/local.

--with-solid[=dir]

Inclut le support Solid. DIR est le dossier d'installation de Solid. Par défaut, c'est /usr/local/solid.

--with-ibm-db2[=dir]

Inclut le support IBM DB2. DIR est le dossier d'installation de DB2. Par défaut, c'est /home/db2inst1/sqllib.

--with-empress[=dir]

Inclut le support Empress. DIR est le dossier d'installation de Empress. Par défaut, c'est $EMPRESSPATH. Depuis PHP4, cette option ne supporte que Empress Version 8.60 et plus récent.

--with-empress-bcs[=dir]

Inclut le support Empress Local Access. DIR est le dossier d'installation de Empress. Par défaut, c'est $EMPRESSPATH. Depuis PHP4, cette option ne supporte que Empress Version 8.60 et plus récent.

--with-birdstep[=dir]

Inclut le support Birdstep. DIR est le dossier d'installation de Birdstep. Par défaut, c'est /usr/local/birdstep.

--with-custom-odbc[=dir]

Inclut le support a user defined ODBC. DIR est le dossier d'installation d'ODBC. Par défaut, c'est /usr/local. Assurez vous que la variable CUSTOM_ODBC_LIBS est définie, et que le fichier odbc.h est dans votre chemin d'inclusion, c'est à dire que vous devriez définir les lignes suivantes pour Sybase SQL Anywhere 5.5.00 sous QNX, avant d'utiliser le script de configuration : CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=dir]

Inclut le support iODBC. DIR est le dossier d'installation de iODBC. Par défaut, c'est /usr/local.

--with-esoob[=dir]

Inclut le support Easysoft OOB. DIR est le dossier d'installation de OOB. Par défaut, c'est /usr/local/easysoft/oob/client.

--with-unixodbc[=dir]

Inclut le support unixODBC. DIR est le dossier d'installation d'unixODBC. Par défaut, c'est /usr/local.

--with-openlink[=dir]

Inclut le support OpenLink ODBC. DIR est le dossier d'installation OpenLink. Par défaut, c'est /usr/local. C'est le même que pour iODBC.

--with-dbmaker[=dir]

Inclut le support DBMaker. DIR est le dossier d'installation DBMaker. Par défaut, c'est le chemin de la dernière installation de DBMaker (par exemple /home/dbmaker/3.6).

To disable unified ODBC support in PHP 3 add --disable-unified-odbc to your configure line. Only applicable if iODBC, Adabas, Solid, Velocis or a custom ODBC interface is enabled.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de librairie supplémentaire pour disposer de ces fonctions.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

NomPar défautModifiable
odbc.default_db *NULLPHP_INI_ALL
odbc.default_user *NULLPHP_INI_ALL
odbc.default_pw *NULLPHP_INI_ALL
odbc.allow_persistent"1"PHP_INI_SYSTEM
odbc.check_persistent"1"PHP_INI_SYSTEM
odbc.max_persistent"-1"PHP_INI_SYSTEM
odbc.max_links"-1"PHP_INI_SYSTEM
odbc.defaultlrl"4096"PHP_INI_ALL
odbc.defaultbinmode"1"PHP_INI_ALL

Note : Les entrées marquées avec une étoile ne sont pas encore implémentées.

Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à ini_set().

Voici un éclaircissement sur l'utilisation des directives de configuration.

odbc.default_db chaîne de caractères

La source de données ODBC si aucune n'est spécifiée dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.default_user chaîne de caractères

Nom d'utilisateur à utiliser si aucun n'est spécifié dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.default_pw chaîne de caractères

Mot de passe à utiliser si aucun n'est spécifié dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.allow_persistent booléen

Est ce que les connexions ODBC persistantes sont autorisées ou pas.

odbc.check_persistent booléen

Vérifie que la connexion est valide avant de l'utiliser.

odbc.max_persistent entier

Nombre maximum de connexions persistantes par processus.

odbc.max_links entier

Le nombre maximum de connexions ODBC par processus, y compris les connexions persistantes.

odbc.defaultlrl entier

Gestion des champs de type LONG. Spécifie le nombre d'octets retournés dans les variables.

odbc.defaultbinmode entier

Gestion des données binaires.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes prédefinies

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.

ODBC_TYPE (entier)

ODBC_BINMODE_PASSTHRU (entier)

ODBC_BINMODE_RETURN (entier)

ODBC_BINMODE_CONVERT (entier)

SQL_ODBC_CURSORS (entier)

SQL_CUR_USE_DRIVER (entier)

SQL_CUR_USE_IF_NEEDED (entier)

SQL_CUR_USE_ODBC (entier)

SQL_CONCURRENCY (entier)

SQL_CONCUR_READ_ONLY (entier)

SQL_CONCUR_LOCK (entier)

SQL_CONCUR_ROWVER (entier)

SQL_CONCUR_VALUES (entier)

SQL_CURSOR_TYPE (entier)

SQL_CURSOR_FORWARD_ONLY (entier)

SQL_CURSOR_KEYSET_DRIVEN (entier)

SQL_CURSOR_DYNAMIC (entier)

SQL_CURSOR_STATIC (entier)

SQL_KEYSET_SIZE (entier)

SQL_CHAR (entier)

SQL_VARCHAR (entier)

SQL_LONGVARCHAR (entier)

SQL_DECIMAL (entier)

SQL_NUMERIC (entier)

SQL_BIT (entier)

SQL_TINYINT (entier)

SQL_SMALLINT (entier)

SQL_INTEGER (entier)

SQL_BIGINT (entier)

SQL_REAL (entier)

SQL_FLOAT (entier)

SQL_DOUBLE (entier)

SQL_BINARY (entier)

SQL_VARBINARY (entier)

SQL_LONGVARBINARY (entier)

SQL_DATE (entier)

SQL_TIME (entier)

SQL_TIMESTAMP (entier)

SQL_TYPE_DATE (entier)

SQL_TYPE_TIME (entier)

SQL_TYPE_TIMESTAMP (entier)

SQL_BEST_ROWID (entier)

SQL_ROWVER (entier)

SQL_SCOPE_CURROW (entier)

SQL_SCOPE_TRANSACTION (entier)

SQL_SCOPE_SESSION (entier)

SQL_NO_NULLS (entier)

SQL_NULLABLE (entier)

SQL_INDEX_UNIQUE (entier)

SQL_INDEX_ALL (entier)

SQL_ENSURE (entier)

SQL_QUICK (entier)

Table des matières
odbc_autocommit -- Active le mode auto-validation
odbc_binmode -- Modifie la gestion des colonnes de données binaires
odbc_close_all -- Ferme toutes les connexions ODBC
odbc_close -- Ferme une connexion ODBC
odbc_columnprivileges --  Liste les colonnes et leurs droits associés
odbc_columns --  Liste les colonnes d'une table
odbc_commit -- Valide une transaction ODBC
odbc_connect -- Connexion à une source
odbc_cursor -- Lecture du pointeur de fiche courante (cursorname)
odbc_data_source -- Retourne des informations sur la connexion courante
odbc_do -- Synonyme de odbc_exec()
odbc_error -- Lit le dernier code d'erreur
odbc_errormsg -- Lit le dernier message d'erreur
odbc_exec --  Prépare et exécute une requête SQL
odbc_execute --  Exécute une requête SQL préparée.
odbc_fetch_array -- Lit une ligne de résultat dans un tableau associatif
odbc_fetch_into --  Lit une ligne de résultat, et la place dans un tableau.
odbc_fetch_object -- Lit une ligne de résultat dans un objet
odbc_fetch_row -- Lit une ligne de résultat
odbc_field_len -- Lit la longueur d'un champ
odbc_field_name -- Lit le nom de la colonne
odbc_field_num -- Numéro de colonne
odbc_field_precision -- Alias de odbc_field_len()
odbc_field_scale -- Lit l'échelle d'un champ
odbc_field_type -- Type de données d'un champ
odbc_foreignkeys --  Liste les clés étrangères
odbc_free_result --  Libère les ressources associées à un résultat
odbc_gettypeinfo --  Liste les types de données supportés par une source
odbc_longreadlen -- Gestion des colonnes de type LONG
odbc_next_result -- Vérifie si plusieurs résultats sont disponibles
odbc_num_fields -- Nombre de colonnes dans un résultat
odbc_num_rows -- Nombre de lignes dans un résultat
odbc_pconnect --  Ouvre une connexion persistante à une source de données.
odbc_prepare -- Prépare une commande pour l'exécution
odbc_primarykeys --  Liste les colonnes utilisées dans une clé primaire
odbc_procedurecolumns --  Liste les paramètres des procédures
odbc_procedures --  Liste les procédure stockées
odbc_result_all --  Affiche le résultat sous la forme d'une table HTML.
odbc_result -- Lit un champ de résultat UODBC
odbc_rollback -- Annule une transaction
odbc_setoption --  Modifie les paramètres ODBC.
odbc_specialcolumns --  Retourne l'ensemble optimal de colonnes, qui permet de définir uniquement une ligne dans une table
odbc_statistics -- Calcule des statistiques sur une table
odbc_tableprivileges --  Liste les tables et leurs privilèges
odbc_tables --  Liste les tables d'une source.