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)
http://pecl4win.php.net/ext.php/php_ingres.dll
- Linux & Unix (code source)
http://pecl.php.net/package/ingres
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);
?>