Connexion à une base Ingres avec PHP

Décembre 2016

Cette astuce est tirée des documentations Ingres suivantes :
- Ingres® 2006 Release 2 for Windows Quick Start Guide (qs_windows.pdf)
- Ingres® 2006 Release 2 for Linux Quick Start Guide (qs_linux.pdf)
(Voir l'artile sur la dans cette même rubrique)



Téléchargez PECL


- Windows (driver)
- Linux & Unix (code source)

Installation


Windows
1 - Copiez le fichier php_ingres.dll dans le répertoire des extentions PHP
2 - Editez votre fichier php.ini et ajoutez la ligne suivante :
extension=php_ingres.dll

Linux & Unix
1 - Repérez le répertoire où se situe la commande phpize ou php-config
Sur certaines distributions de Linux il est nécessaire de renommer ces fichiers pour éviter des conflits.
Pour compiler la bibliothèque PECL Ingres vous avez besoin d'un compilateur.
2 - Assurez vous que la variable II_SYSTEM est bien valorisée
echo $II_SYSTEM

3 - Déplacez vous dans le répertoire contenant le code source de l'extention
4 - Générez la configuration pour l'extention
phpize

5 - Générez le Makefile
./configure --with-ingres

6 - Compilez l'extention
make

7 - Installez l'extention
make install

8 - Editez le fichier php.ini et ajoutez la ligne extension=ingres.so
9 - Si vous utilisez Apache, utilisez la directive User du httpd.conf
pour vous assurer que Apache tourne bien avec un utilisateur Ingres valide

Apache pour Linux & Unix
1 - Dans la configuration Apache, ajoutez les lignes suivantes
(ou vérifiez qu'elles ne sont pas commentées) :
LoadModule env_module modules/mod_env.so
SetEnv II_SYSTEM votre-répertoire-II_SYSTEM
SetEnv LD_LIBRARY_PATH votre-répertoire-II_SYSTEM/ingres/lib

2 - Redémarrez Apache

Exemple de code ...


A noter : dans les exemples ci-dessous il est possible de spécifier un noeud ou vnode

Connexion
<?php
$link = ingres_connect(“mydb”, “username”, “password”);
or die(“Could not connect”);
echo “Connected successfully”;
ingres_close($link);
?>


Test des erreurs
<?php
$link = ingres_connect(“mydb”, “username”, “password”);
if (ingres_errno($link) != 0) {
echo ingres_errno($link) . “ : “ . ingres_error($link) . “<BR/>\n”;
}
?>


Requête simple
<?php
$link = ingres_connect(“mydb”, “username”, “password”);
// Gives a list of the tables
$sql = “select * from iirelation order by relid asc”;
$rc = ingres_query($sql,$link);
// Do some error checking...
while ( $iirelation = ingres_fetch_object($link) ) {
echo $iirelation->relid “<BR/>\n”;
}
?>


Requête avec paramètres
<?php
$link = ingres_connect(“iidbdb”, “ingres”, “ingres”);
// Gives a list of the tables based on a parameter
$sql = “select * from iirelation where relowner = ? order by relid asc”;
$params[“owner1”] = (“usrname”);
$rc = ingres_query($sql,$link,$params);
// Do some error checking...
while ( $iirelation=ingres_fetch_object($link) ) {
echo $iirelation->relid “<BR/>\n”;
}
?>


Chargement d'un BLOB
<?php
// Fetch the image to be inserted
$handle = fopen (“usrname.png”,”r”);
$login_image = stream_get_contents($handle);
fclose($handle);
// Set up the query
$sql = “insert into login_images values (?,?)”;
// Type the parameters being passed
$types = “vB”; // varchar, BLOB
// Set up the parameter values
$params[“login”] = “usrname”;
$params[“image”] = $login_image;
// Execute
$rc = ingres_query($sql,$link,$params,$types);
?>

A voir également :

Ce document intitulé «  Connexion à une base Ingres avec PHP  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.