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 149. 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 I,
Directives du php.ini
.
Types de ressources
ingres_connect()
et ingres_pconnect()
retournent un identifiant de lien Ingres II.
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 1233. 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
(
INGRES_BOTH
,
$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
);
?>
Table des matières
- ingres_autocommit
— Active ou désactive le mode autocommit
- ingres_close
— Ferme une connexion à un serveur Ingres
- ingres_commit
— Valide une transaction
- ingres_connect
— Ouvre une connexion sur un serveur Ingres
- ingres_cursor
— Récupère le nom du curseur pour une ressource donnée
- ingres_errno
— Récupère le dernier numéro d'erreur d'ingres généré
- ingres_error
— Récupère un message d'erreur significatif pour la dernière erreur générée
- ingres_errsqlstate
— Gets the last SQLSTATE error code generated
- ingres_fetch_array
— Récupère une ligne de résultat Ingres dans un tableau
- ingres_fetch_object
— Récupère une ligne de résultat dans un objet
- ingres_fetch_row
— Récupère une ligne de résultat dans un tableau énuméré
- ingres_field_length
— Retourne la taille d'un champ
- ingres_field_name
— Retourne le nom d'un champ dans le résultat d'une requête
- ingres_field_nullable
— Teste si un champ est annulable
- ingres_field_precision
— Retourne la précision d'un champ
- ingres_field_scale
— Retourne l'échelle d'un champ
- ingres_field_type
— Retourne le type d'un champ dans le résultat d'une requête
- ingres_num_fields
— Retourne le nombre de champs renvoyés par la dernière requête
- ingres_num_rows
— Retourne le nombre de lignes affectées ou renvoyées par la dernière requête
- ingres_pconnect
— Ouvre une connexion persistante à un serveur Ingres
- ingres_query
— Envoie une requête SQL à un serveur Ingres II
- ingres_rollback
— Annule une transaction