Notes de configuration : Vous avez besoin d' une version de ESQL / C pour compiler le pilote PHP d 'Informix . Les versions ESQL / C 7.2x sont utilisables . ESQL / C fait partie du SDK Informix Client .
Avant que vous ne lanciez le script " configure" , assurez-vous que la variable d'environnement "INFORMIXDIR " a été correctement paramétrée , et que $INFORMIXDIR / bin est dans votre PATH .
Le script de configuration va détecter automatiquement les librairies disponibles , et inclure les dossiers si vous lancer le script avec l ' option --with-informix=yes . Vous pouvez ignorer cette détection en spécifiant " IFX_LIBDIR" , "IFX_LIBS " et "IFX_INCDIR " dans votre environnement . Le script de configuration va aussi essayer de détecter la version de votre serveur Informix . Il modifiera alors la condition de compilation " HAVE_IFX_IUS " si votre serveur Informix est d 'une version plus récente que 9.00 .
Notes d ' exécutions : Assurez-vous que les variables d ' environnement INFORMIXDIR et INFORMIXSERVER sont accessibles au pilote PHP , et que le dossier bin INFORMIX est aussi dans la variable PATH . Vous pouvez le voir en lançant un script qui contient un appel à phpinfo( ) avant que vous ne commenciez à tester . La fonction phpinfo( ) affiche une liste des variables d 'environnement . Cela fonctionne aussi bien en mode mod_php , qu ' en mode CGI . Il vous faudra fixer les valeurs dans le script de démarrage d ' Apache .
Les " Informix shared libraries " doivent aussi être accessibles au chargement (vérifiez LD_LINBRARY_PATH ou ld.so.conf / ldconfig ) .
Notes sur l' utilisation des BLOBs (TEXT et BYTE ) : Les objets de type BLOBs sont normalement gérés par des identifiants de BLOB . Les requêtes de sélection retournent un identifiant de BLOB pour chaque colonne de type BYTE et TEXT . Vous pouvez en lire le contenu , avec des commandes de types " string_var = ifx_get_blob($BLOB_id) ; " ; si vous souhaitez ramener le BLOB en mémoire (avec : "ifx_blobinfile_mode(0) ;" ) . Si vous préférez recevoir le contenu d' une colonne BLOB dans un fichier , utilisez ifx_blobinfile_mode( ) , et ifx_get_blob($BLOB_id ) vous retournera le nom du fichier . Utilisez les fonctions habituelles d ' accès aux fichiers pour lire son contenu .
Pour les requêtes INSERT / UPDATE , vous devez créer les identifiants de BLOB par vous même , avec la fonction ifx_create_blob( ) . Puis , vous placez l' identifiant de BLOB dans un tableau , et remplacez la colonne par un point d 'interrogation . Pour les UPDATE / INSERT , vous êtes responsable du contenu du BLOB , avec la fonction ifx_update_blob( ) .
Le comportement par défaut des colonnes de type BLOB peut être modifié en affectant de nouvelles valeurs aux variables de configuration ( même à la volée ) :
Variable de configuration : ifx.textasvarchar
Variable de configuration : ifx.byteasvarchar
Fonctions à utiliser lors de l ' exécution :
ifx_textasvarchar( 0 ) : Utilise l ' identifiant de BLOB avec des colonnes de type TEXT , dans les requêtes SELECT
ifx_byteasvarchar( 0 ) : Utilise l ' identifiant de BLOB avec des colonnes de type BYTE , dans les requêtes SELECT
ifx_textasvarchar( 1 ) : Retourne les colonnes de type TEXT sous la forme de VARCHAR , sans utiliser les identifiants de BLOB dans les requêtes SELECT .
ifx_byteasvarchar( 1 ) : Retourne les colonnes de type BYTE sous la forme de VARCHAR , sans utiliser les identifiants de BLOB dans les requêtes SELECT .
Variable de configuration : ifx.BLOBinfile
Fonctions à utiliser lors de l ' exécution :
ifx_blobinfile_mode( 0 ) : Retourne les colonnes de type BYTE en mémoire , l ' identifiant de BLOB vous donnera accès au contenu .
ifx_blobinfile_mode( 1 ) : Retourne les colonnes de type BYTE dans un fichier , l ' identifiant de BLOB vous donnera accès au nom de ce fichier .
En affectant la valeur de 1 à ifx_text / byteasvarchar , vous pouvez utiliser les colonnes de type TEXT et BYTE dans les requêtes SELECT comme des champs VARCHAR ( mais plus long ) . Etant donné la gestion des chaînes par PHP , cette technique conserve les données binaires . Les données retournées peuvent contenir n ' importe quoi , et vous êtes responsable de la bonne manipulation de ces valeurs .
En affectant la valeur de 1 à ifx_blobinfile_mode( ) , utilisez le nom de fichier retourné par ifx_get_blob( ) pour accéder au contenu du BLOB . Notez bien que vous êtes tenu responsable de l ' effacement des fichiers temporaires , créés par Informix . Chaque nouvelle ligne lue sur le serveur va créer un nouveau fichier temporaire , pour chaque colonne de type BYTE .
L' emplacement des fichiers temporaire peut être modifié , grâce à la variable "blobdir" , (par défaut , " ." , c'est-à-dire , le dossier courant ) . Une valeur telle que BLOBdir=" tmpBLOB " simplifiera le nettoyage des fichiers temporaires , accidentellement oubliés (les noms commencent tous par "blb" ) .
Suppression automatique des espaces ( SQLCHAR et SQLNCHAR ) : Elle peut être mise en place avec la variable de configuration .
ifx.charasvarchar : avec la valeur 1 , les espaces de fin de champs seront automatiquement supprimés .
Lorsque la variable de configuration ifx.nullformat ( ou que la fonction ifx_nullformat( ) ) est à un , les colonnes contenant la valeur NULL retourneront la chaîne "NULL " , et sinon , retourneront une chaîne vide . Cela vous permet de faire la différence entre les colonnes vides et celles qui contiennent la valeur NULL .