CXXVII. Fonctions ODBC (unifiés)

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 bibliothèques é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 PHP 4, 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 PHP 4, 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 d'un ODBC définit par l'utilisateur. 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).

Pour désactiver le support unifié ODBC dans PHP 3 ajoutez --disable-unified-odbc dans votre ligne de configuration. Cela n'est possible que si iODBC, Adabas, Solid, Velocis ou une interface ODBC personnalisée est activée.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque 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.

Lorsqu'un entier est utilisé, sa valeur est mesuré en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..

odbc.defaultbinmode entier

Gestion des données binaires.

Types de ressources

Cette extension ne définit aucune ressource.

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.

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édures 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