Manuel PHP
Précédent |  | Suivant

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

Nom | Par défaut | Modifiable | Historique
--- | --- | --- | ---
odbc.default_db * | NULL | PHP_INI_ALL |
odbc.default_user * | NULL | PHP_INI_ALL |
odbc.default_pw * | NULL | PHP_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 à Annexe G.

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ée 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)

Précédent | Sommaire | Suivant
ociwritetemporarylob | Niveau supérieur | odbc_autocommit