Manuel PHP
Précédent |  | Suivant

# LXVIII. Ingres II

# Introduction

Ces fonctions permettent l'accès à un serveur de base de données Ingres II.

> Note : Si vous avez déjà utilisé des extensions PHP permettant l'accès à d'autres serveurs de bases de données, notez qu'Ingres n'accepte pas de requêtes et/ou de transactions concurrentes sur la même connexion, et donc vous ne trouverez aucun identifiant de résultat ou de transaction dans cette extension. Le résultat d'une requête doit être traité avant d'envoyer une autre requête, et une transaction doit être validée ("commit") ou annulée ("roll back") avant de pouvoir en ouvrir une nouvelle (l'ouverture de transaction est faite automatiquement à l'envoi de la première requête).

# Pré-requis

Pour compiler PHP avec le support Ingres, vous aurez besoin de la bibliothèque Ingres OpenAPI et des fichiers d'en-têtes.

# Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/ingres.

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support Ingres, en utilisant l'option `--with-ingres[=DIR]` où DIR est le répertoire d'installation du serveur Ingres (par défaut, `/II/ingres`). Ceci nécessite les fichiers de bibliothèque de l'en-tête d'Open API qui sont inclus dans Ingres II. Si la variable d'environnement II_SYSTEM n'est pas correctement initialisée, vous devrez utiliser `--with-ingres=DIR`, pour spécifier le répertoire où a été installé Ingres.

Lorsque cette extension est utilisée avec Apache, si Apache ne démarre pas et émet l'erreur "`PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0`", assurez-vous que la variable d'environnement `II_SYSTEM` est correctement initialisée. Il suffit souvent d'ajouter "export II_SYSTEM="/home/ingres/II" dans le script qui démarre Apache, juste avant le lancement de `httpd`.

# 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
--- | --- | --- | ---
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.2.
ingres.max_persistent | "-1" | PHP_INI_SYSTEM |
ingres.max_links | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.2.
ingres.default_database | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
ingres.default_user | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
ingres.default_password | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
ingres.report_db_warnings | "1" | PHP_INI_ALL | Disponible depuis la version 1.1.0 de l'extension PECL.
ingres.cursor_mode | "0" | PHP_INI_ALL | Disponible depuis la version 1.1.0 de l'extension PECL.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Disponible depuis la version 1.2.0 de l'extension PECL.
ingres.trace_connect | "0" | PHP_INI_ALL | Disponible depuis la version 1.3.1 de l'extension PECL.
ingres.timeout | "-1" | PHP_INI_ALL | Disponible depuis la version 1.3.1 de l'extension PECL.
ingres.array_index_start | "1" | PHP_INI_ALL | Disponible depuis la version 1.3.1 de l'extension PECL.

Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe G.

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

`INGRES_ASSOC` (entier)

  Des colonnes sont retournées dans un tableau ayant comme index le nom des champs.

`INGRES_NUM` (entier)

  Des colonnes sont retournées dans un tableau ayant un index numérique des champs. L'index commence avec 1, le premier champ dans le résultat.

`INGRES_BOTH` (entier)

  Des colonnes sont retournées dans un tableau ayant un index numérique et un index avec le nom des champs.

`INGRES_EXT_VERSION` (chaîne de caractères)

  Spécifie la version de l'extension Ingres. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_API_VERSION` (entier)

  Spécifie la version de Ingres OpenAPI de l'extension qui a été bâtie. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_CURSOR_READONLY` (entier)

  Spécifie que les curseurs Ingres doivent être ouverts en mode lecture seule ('readonly'). Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_CURSOR_UPDATE` (entier)

  Spécifie que les curseurs Ingres doivent être ouverts en mode pour mise à jour ('for update'). Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_DATE_MULTINATIONAL` (entier)

  Équivalent à la configuration II_DATE_FORMAT de MULTINATIONAL. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_DATE_MULTINATIONAL4` (entier)

  Équivalent à la configuration II_DATE_FORMAT de MULTINATIONAL4. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_DATE_FINNISH` (entier)

  Équivalent à la configuration II_DATE_FORMAT de FINNISH. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_DATE_ISO` (entier)

  Équivalent à la configuration II_DATE_FORMAT de ISO. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_DATE_ISO4` (entier)

  Équivalent à la configuration II_DATE_FORMAT de ISO4. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_DATE_GERMAN` (entier)

  Équivalent à la configuration II_DATE_FORMAT de GERMAN. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_DATE_MDY` (entier)

  Équivalent à la configuration II_DATE_FORMAT de MDY. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_DATE_DMY` (entier)

  Équivalent à la configuration II_DATE_FORMAT de DMY. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_DATE_YMD` (entier)

  Équivalent à la configuration II_DATE_FORMAT de YMD. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_MONEY_LEADING` (entier)

  Spécifie le caractère de devise qui doit être placé au début des valeurs monétaires. Équivalent à la configuration II_MONEY_FORMAT à 'L:'. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_MONEY_TRAILING` (entier)

  Spécifie le caractère de devise qui doit être placé à la fin des valeurs monétaires. Équivalent à la configuration II_MONEY_FORMAT à 'T:'. Disponible depuis la version 1.2.0 de l'extension PECL.

`INGRES_STRUCTURE_BTREE` (entier)

  Spécifie la table par défaut ou l'index de la structure du BTREE lorsqu'il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

`INGRES_STRUCTURE_CBTREE` (entier)

  Spécifie la table par défaut ou l'index de structure du BTREE COMPRESSED lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

`INGRES_STRUCTURE_HASH` (entier)

  Spécifie la table par défaut ou l'index de structure du HASH lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

`INGRES_STRUCTURE_CHASH` (entier)

  Spécifie la table par défaut ou l'index de structure du HASH COMPRESSED lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

`INGRES_STRUCTURE_HEAP` (entier)

  Spécifie la table par défaut ou l'index de structure du HEAP lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

`INGRES_STRUCTURE_CHEAP` (entier)

  Spécifie la table par défaut ou l'index de structure du HEAP COMPRESSED lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

`INGRES_STRUCTURE_ISAM` (entier)

  Spécifie la table par défaut ou l'index de structure du ISAM COMPRESSED lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

`INGRES_STRUCTURE_CISAM` (entier)

  Spécifie la table par défaut ou l'index de structure du ISAM COMPRESSED lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

# Exemples

Ce simple exemple illustre comment se connecter, exécuter une requête, afficher les résultats et se déconnecter d'une base de données Ingres.

Exemple 1. Simple Ingres Example

`<?php
// Connexion, sélection de base de données
$link = ingres_connect('database', 'user', 'password')
or die('Connexion impossible : ' . ingres_error($link));
echo 'Connecté correctement';
// Sélectionne à partir d'une table qui existe dans toutes les bases de données Ingres
$query = 'SELECT * FROM iirelation';
$returncode = ingres_query($query,$link) or die('Échec requête : ' .
ingres_error($link));
// Affiche les résultats en HTML
// relid - table name
// relowner - table owner
echo "<table>\n";
while ($iirelation = ingres_fetch_object($link)) {
echo "\t<tr>\n";
echo "\t\t<td>" . $iirelation->relid . "</td>\n";
echo "\t\t<td>" . $iirelation->relowner . "</td>\n";
echo "\t</tr>\n";
}
echo "</table>\n";
// Envoie la transaction
ingres_commit($link);
// Fermeture de la connexion
ingres_close($link);
?>`

Précédent | Sommaire | Suivant
PDO_INFORMIX DSN | Niveau supérieur | ingres_autocommit