Index: phpdoc/fr/functions/ifx.xml
diff -u phpdoc/fr/functions/ifx.xml:1.1 phpdoc/fr/functions/ifx.xml:1.2
--- phpdoc/fr/functions/ifx.xml:1.1 Fri Jul 21 03:27:50 2000
+++ phpdoc/fr/functions/ifx.xml Tue Nov 28 02:49:07 2000
@@ -1,1371 +1,1486 @@
-
- Fonctions Informix
- Informix
-
-
-
- Le pilote d'accès à Informix pour Online (ODS) 7.x, SE 7.x et Universal Server
- (IUS) 9.x est implémenté dans "functions/ifx.ec" et "functions/php3_ifx.h". Le
- support ODS 7.x est plutôt complet, et accepte les colonnes de type BYTE et TEXT.
- Le support IUS 9.x est partiellment fini, de nouveau types sont disponibles, mais
- SLOB et CLOB sont toujours en développement.
-
-
- Notes de configuration
-
- Avant que vous ne lanciez le script "configure", assurez vous que la variable
- d'environnement "INFORMIXDIR" a été correctement paramétrée.
-
-
- Le script de configuration va détecter automatiquement les librairies
- disponibles, et inclure les dossiers si vous lancer le script avec l'option
- "configure --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
-
- 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 lancant 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.
-
-
-
- NULL values
-
- 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 celle qui
- contiennent la valeur NULL.
-
-
-
-
-
-
- ifx_connect
- Ouvre une connexion à un serveur Informix.
-
-
- Description
-
- int ifx_connect
- string database
-
- string userid
-
- string password
-
-
-
- Retourne un identifiant de connexion, en cas de succès, et FALSE sinon.
-
-
- ifx_connect établit une connexion à un serveur Informix.
- Tous les arguments sont optionnels, et, si ils viennent à manquer, les
- valeurs par défaut seront prises dans le fichier
- de configuration .
- (ifx.default_host pour l'hôte par défaut) (Les librairies Informix utiliseront la
- variable d'environnement $INFORMIXSERVER si ifx.default_host n'est
- pas définie). ifx.default_user pour l'utilisateur, et ifx.default_password comme
- mot de passe (si aucun n'a été défini).
-
-
- Si un deuxième appel à ifx_connect est fait avec les mêmes
- arguments, l'identifiant de connexion déjà ouvert sera retourné.
-
-
- Le lien avec le serveur sera fermé dès que le script se termine, ce qui fait
- qu'il n'est pas nécessaire de terminer les connexions avec
- ifx_close.
-
-
- Voir aussiifx_pconnect et ifx_close.
-
- Connection à un serveur Informix
-
-$conn_id = ifx_pconnect ("mydb <email protected>", "imyself", "mypassword");
-
-
-
-
-
-
-
-
- ifx_pconnect
- Ouvre une connexion persistante à un serveur Informix.
-
-
- Description
-
- int ifx_pconnect
- string
- database
-
- string
- userid
-
- string
- password
-
-
-
- Retourne un identifiant positif de connexion Informix, ou FALSE, en cas d'erreur.
-
-
- ifx_pconnect se comporte de manière très similaire à
- ifx_connect avec deux différences importantes :
-
-
- Cette fonction se comporte exactement comme ifx_connect lorsque
- PHP n'est pas un module Apache. Lors de la connexion, la fonction va chercher une
- connexion déjà ouverte avec le même hôte, le même nom d'utilisateur, et le même
- mot de passe. Si elle en trouve une, elle retournera un identifiant de cette
- connexion, au lieu d'en ouvrir une nouvelle.
-
-
- Deuxièmement, la connexion au serveur SQL ne sera pas automatiquement refermée
- à la fin de l'exécution du script. Au contraire, le lien va rester ouvert
- (ifx_close ne fermera pas les connexions établies avec
- ifx_pconnect).
-
-
- Ainsi, ce type de lien est appelé 'persistant'.
-
-
- Voir aussi: ifx_connect.
-
-
-
-
-
-
- ifx_close
- Ferme une connexion à un serveur Informix.
-
-
- Description
-
- int ifx_close
- int
- link_identifier
-
-
-
- Retourne toujours TRUE.
-
-
- ifx_close ferme le lien au serveur de données Informix
- associé à l'identifant de connexion link_identifier.
- Si l'identifiant du lien n'est pas spécifié, la dernière connexion est utilisée.
-
-
- Notez qu'il n'est généralement pas besoin d'appeler cette fonction, car les
- connexions non persistantes seront automatiquement fermées.
-
-
- ifx_close ne peut pas fermer une connexion ouverte avec
- ifx_pconnect.
-
-
- Voir aussi: ifx_connect et ifx_pconnect.
-
- Fermer une connexion Informix
-
-$conn_id = ifx_connect ("mydb <email protected>", "itsme", "mypassword");
-... some queries and stuff ...
-ifx_close($conn_id);
-
-
-
-
-
-
-
-
- ifx_query
- Envoie une requête Informix.
-
-
- Description
-
- int ifx_query
- string query
- int
- link_identifier
-
- int
- cursor_type
-
- mixed
-
- BLOBidarray
-
-
-
-
- Retourne un identifiant positif de résultat Informix en cas de succès, et
- FALSE en cas d'erreur.
-
-
- L'entier de type "identifiant de résultat" est utilisé par d'autres fonctions
- pour lire les résultats. Pour un exemple, reportez vous à
- ifx_affected_rows pour connaître le nombre de lignes
- affectées.
-
-
- ifx_query envoie une requête au serveur actif courant,
- associé à l'identifiant de connexion link_identifier.
- Si link_identifier n'est pas fourni,
- la dernière connexion ouverte sera utilisée. Si aucune connexion n'a été ouverte,
- ifx_query va essayer d'en créer une, en appelant
- ifx_connect.
-
-
- Exécute la requête query sur la connexion
- conn_id.
- Pour les requêtes de type SELECT, un pointeur est déclaré, et ouvert.
- L'option cursor_type permet de choisir le type de
- pointeur, "scroll" et/ou "hold". cursor_type accepte
- les deux valeurs séparées, et leur combinaison. Les requêtes d'autre type sont
- à exécution immédiate.
-
-
- Le nombre de ligne affectées (estimé ou exact) est enregistré, pour être lu avec
- la fonction ifx_affected_rows.
-
-
- Si vous avez une colonne de type BLOB (BYTE ou TEXT) dans une requête de
- modification, vous pouvez passer un paramètre BLOBidarray
- qui contiendra les identifiants des BLOB à modifier, et vous devrez remplacer
- cette colonne par un point d'interrogation (?) dans la requête.
-
-
- Si le contenu d'une colonne de type TEXT (ou BYTE) vous pouvez aussi utiliser les
- fonctions ifx_textasvarchar et ifx_byteasvarchar.
- Cela vous permettra d'utiliser les colonnes TEXT ( ou BYTE ) comme des colonnes
- de type VARCHAR (mais plus long, tout de même), et vous n'aurez pas besoin de
- l'identifiant de BLOB.
-
-
- Avec les fonctions ifx_textasvarchar et ifx_byteasvarchar
- (valeurs par défaut), les requêtes SELECT retourneront des identifiants de BLOB.
- Cet identifiant peut être une chaîne ou un fichier, suivant la configuration
- (voir plus loin).
-
-
- Voir aussi : ifx_connect.
-
-
- Afficher toutes les lignes de la table "ordres" sous la forme html
-
-
-ifx_textasvarchar(1); // Utilisation du mode "text mode" pour les BLOBs
-$res_id = ifx_query("select * from orders", $conn_id);
-if (! $res_id) {
- printf("Impossible de selectionner des lignes dans : %s\n<br>%s<br>\n", ifx_error());
- ifx_errormsg();
- die;
-}
-ifx_htmltbl_result($res_id, "border=\"1\"");
-ifx_free_result($res_id);
-
-
-
- Insertion de valeurs dans la table "catalogue"
-
- // créer un identifiant de BLOB pour une colonne de type BYTE et une de type TEXT
-$textid = ifx_create_blob(0, 0, "Text column in memory");
-$byteid = ifx_create_blob(1, 0, "Byte column in memory");
- // store BLOB id's in a BLOBid array
-$BLOBidarray[] = $textid;
-$BLOBidarray[] = $byteid;
- // launch query
-$query = "insert into catalog (stock_num, manu_code, " .
- "cat_descr,cat_picture) values(1,'HRO',?,?)";
-$res_id = ifx_query($query, $conn_id, $BLOBidarray);
-if (! $res_id) {
- ... erreur ...
-}
- // libération du résultat
-ifx_free_result($res_id);
-
-
-
-
-
-
-
-
- ifx_prepare
- Prépare une requête SQL pour l'exécution.
-
-
- Description
-
- int ifx_prepare
- string query
- int conn_id
- int
- cursor_def
-
- mixed BLOBidarray
-
-
- Retourne un entier identifiant de résultat result_id
- à utiliser avec ifx_do. Modifie la valeur de
- affected_rows, pour accès ultérieur avec
- ifx_affected_rows.
-
-
- Prépare la requête query sur la connexion
- conn_id. Pour les requêtes de type "select-type"
- un pointeur de résultat est déclaré et ouvert. L'option
- cursor_type permet de choisir le type de pointeur :
- "scroll" et/ou "hold". Les valeurs peuvent être combinées ensemble
- (IFX_SCROLL, IFX_HOLD).
-
-
- Le nombre de ligne affectérs (estimé ou exact) est enregistré, pour être lu
- avec la fonction ifx_affected_rows.
-
-
- Si vous avez une colonne de type BLOB (BYTE ou TEXT) dans une requête de
- modification, vous pouvez passer un paramètre BLOBidarray
- qui contiendra les identifiants des BLOB à modifier, et vous devrez remplacer
- cette colonne par un point d'interrogation (?) dans la requête.
-
-
- Si le contenu d'une colonne de type TEXT (ou BYTE) vous pouvez aussi utiliser les
- fonctions ifx_textasvarchar et ifx_byteasvarchar.
- Cela vous permettra d'utiliser les colonnes TEXT (ou BYTE) comme des colonnes de
- type VARCHAR (mais plus long, tout de même), et vous n'aurez pas besoin de
- l'identifiant de BLOB.
-
-
- Avec les fonctions ifx_textasvarchar et ifx_byteasvarchar
- (valeurs par défaut), les requêtes SELECT retourneront des identifiants de BLOB.
- Cet identifiant peut être une chaîne ou un fichier, suivant la configuration
- (voir plus loin).
-
-
- Voir aussi ifx_do.
-
-
-
-
-
-
- ifx_do
-
- Exécute une requête SQL déjà préparée.
-
-
-
- Description
-
- int ifx_do
- int result_id
-
-
- Retourne TRUE en cas de succès, FALSE en cas d'erreur.
-
-
- Exécute une requête qui a déjà été préparée, ou crée un pointeur pour cela.
-
-
- Ne libère pas result_id en cas d'erreur.
-
-
- De plus, elle fixe la valeur de result_id pour accès
- ultérieur par ifx_affected_rows
-
-
- Voir aussi : ifx_prepare. Il y a un exemple.
-
-
-
-
-
-
- ifx_error
- Retourne le code d'erreur de la dernière requête Informix.
-
-
- Description
-
- string ifx_error
-
-
-
- Les codes d'erreur Informix (SQLSTATE & SQLCODE) formaté comme suit :
-
-
- x [SQLSTATE = aa bbb SQLCODE=cccc]
-
-
- avec x = space : aucune erreur
-
-
- E : erreur
-
-
- N : il n'y a plus d'informations
-
-
- W : Alerte
-
-
- ? : Undéfinie
-
-
- Si le caractère vaut autre chose qu'un espace, SQLSTATE et SQLCODE décrit
- l'erreur avec plus de détails.
-
-
- Reportez vous au manuel Informix pour trouver la description de
- SQLSTATE et SQLCODE
-
-
- Retourne une chaîne avec un caractères, décrivant le résultat général de la
- commande, et aussi SQLSTATE et SQLCODE associé à la plus récente requête SQL
- exécutée. Le format de la chaîne est "(char) [SQLSTATE=(deux chiffres) (trois chiffres)
- SQLCODE=(un chiffre)]". Le premier caractère peut être ''
- (espace) (succès), 'W' (Alerte), 'E'
- (une erreur est survenue durant le traitement ) ou 'N'
- (aucune donnée de retour).
-
-
- Voir aussi: ifx_errormsg.
-
-
-
-
-
-
- ifx_errormsg
- Retourne le message d'erreur de la dernière requête Informix.
-
-
- Description
-
- string ifx_errormsg
- int
- errorcode
-
-
-
- Retourne le plus récent message d'erreur ou, lorsque l'option
- errorcode est présent, le message d'erreur associé
- à errorcode.
-
-
- Voir aussi: ifx_error.
-
-
-
-printf("%s\n<br>", ifx_errormsg(-201));
-
-
-
-
-
-
-
- ifx_affected_rows
- Retourne le nombre de lignes affectées par une requête.
-
-
- Description
-
- int ifx_affected_rows
- int result_id
-
-
- result_id est un identifiant valide de résultat retourné
- par ifx_query ou ifx_prepare.
-
-
- Retourne le nombre de lignes affectées par la requête associée à
- result_id.
-
-
- Pour les INSERT, UPDATE et DELETE, ce nombre est le nombre exact de lignes
- affectées (sqlerrd[2]). Pour les SELECT, ce n'est qu'une estimation
- (sqlerrd[0]). Ne vous y fiez pas.
-
-
- Cette fonction est très pratique après ifx_prepare
- pour limiter la taille des résultats.
-
-
- Voir aussi : ifx_num_rows.
-
-
- Nombre de lignes affectées
-
-$rid = ifx_prepare ("select * from emp
- where name like " . $name, $connid);
-if (! $rid) {
- ... error ...
-}
-$rowcount = ifx_affected_rows ($rid);
-if ($rowcount > 1000) {
- printf ("Trop de lignes trouvées (%d)\n<br>", $rowcount);
- die ("Ressayez avec une autre requête. <br>\n");
-}
-
-
-
-
-
-
-
- ifx_getsqlca
-
- Retourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête.
-
-
-
- Description
-
- array ifx_getsqlca
- int result_id
-
-
- result_id est un identifiant valide de résultat retourné
- par ifx_query ou ifx_prepare.
-
-
- Retourne une pseudo-ligne (tableau associatif) avec sqlca.sqlerrd[0] à
- sqlca.sqlerrd[5] après la requête associée result_id.
-
-
- Pour les requêtes INSERT, UPDATE et DELETE, les valeurs retournées sont celles
- fixées par le serveur après avoir exécuté la requête. Cela donne accès au nombre
- de ligne affectées, ainsi qu'au numéro de série d'insertion. Pour les requêtes de
- type SELECT, les valeurs retournées sont celles qui ont été préparées. Utiliser
- cette fonction économise l'exécution d'une requête "select dbinfo('sqlca.sqlerrdx')",
- étant donné qu'elle retourne les valeurs qui ont été sauvées par le pilote ifx
- driver au moment approprié.
-
-
- Lire les valeurs de sqlca.sqlerrd[x]
-
-/* On suppose que la première colonne d'une table 'quelconque' est un numéro de série */
-$qid = ifx_query("insert into sometable values(0, '2nd column', 'another column' ", $connid);
-if (! $qid) {
- ... error ...
-}
-$sqlca = ifx_getsqlca ($qid);
-$serial_value = $sqlca["sqlerrd1"];
-echo "Le numéro de série de la valeur insérée est : " . $serial_value<br>\n";
-
-
-
-
-
-
-
-
- ifx_fetch_row
- Retourne une ligne sous la forme d'un tableau énuméré.
-
-
- Description
-
- array ifx_fetch_row
- int result_id
- mixed
- position
-
-
-
- Retourne un tableau associatif qui contient la ligne retournée, ou FALSE si
- il ne reste plus de lignes à lire, ou si il a eu une erreur.
-
-
- Les colonnes de types BLOB sont retournées sous la forme d'un identifiant à
- utiliser avec ifx_get_blob à moins que vous n'ayez utilisé
- la fonction ifx_textasvarchar ou ifx_byteasvarchar,
- et dans ce cas, les BLOBs seront retournés sous forme de chaîne.
- Retourne FALSE en cas d'erreur.
-
-
- result_id est un identifiant valide de résultat, retourné
- par ifx_query ou ifx_prepare
- (Requêtes SELECT seulement !).
-
-
- position est un paramètre optionnel,
- pour une opération de lecture d'informations sur un pointeur de type "scroll":
- "NEXT", "PREVIOUS", "CURRENT", "FIRST", "LAST" ou encore un nombre. Si vous
- spécifier un nombre, la ligne d'index absolu sera retournée. Ce paramètre est
- optionnel, et ne fonctionne qu'avec les pointeurs de type "scroll".
-
-
- ifx_fetch_row retourne une ligne de données d'un résultat
- associé à l'identifiant de résultat result_id. La
- ligne est retournée sous la forme d'un tableau associatif.
-
-
- Les appels ultérieurs à ifx_fetch_row retourneront la ligne
- suivante, ou FALSE si il n'y a plus de ligne.
-
-
- Informix fetch rows
-
-$rid = ifx_prepare ("select * from emp where name like " . $name,
- $connid, IFX_SCROLL);
-if (! $rid) {
- ... error ...
-}
-$rowcount = ifx_affected_rows($rid);
-if ($rowcount > 1000) {
- printf ("Trop de lignes dans le résultats. (%d)\n<br>", $rowcount);
- die ("Recommencez votre requête. <br>\n");
-}
-if (! ifx_do ($rid)) {
- ... erreur ...
-}
-$row = ifx_fetch_row ($rid, "NEXT");
-while (is_array($row)) {
- for(reset($row); $fieldname=key($row); next($row)) {
- $fieldvalue = $row[$fieldname];
- printf ("%s = %s,", $fieldname, $fieldvalue);
- }
- printf("\n<br>");
- $row = ifx_fetch_row ($rid, "NEXT");
-}
-ifx_free_result ($rid);
-
-
-
-
-
-
-
- ifx_htmltbl_result
-
- Lit toutes les lignes d'un tableau, et la met sous la forme d'un tableau HTML.
-
-
-
- Description
-
- int ifx_htmltbl_result
- int result_id
- string
- html_table_options
-
-
-
- Lit toutes les lignes d'un tableau, et la met sous la forme d'un tableau HTML,
- ou FALSE en cas d'erreur.
-
-
- Affiche les lignes avec des balises HTML. Le second argument permet de modifier
- les options de table.
-
-
- Affichage sous la forme d'une table HTML
-
-$rid = ifx_prepare ("select * from emp where name like " . $name,
- $connid, IFX_SCROLL);
-if (! $rid) {
- ... error ...
-}
-$rowcount = ifx_affected_rows ($rid);
-if ($rowcount > 1000) {
- printf ("Trop de lignes dans le résultat : (%d)\n<br>", $rowcount);
- die ("Recommencez votre requête <br>\n");
-}
-if (! ifx_do($rid) {
- ... erreur ...
-}
-
-ifx_htmltbl_result ($rid, "border=\"2\"");
-
-ifx_free_result($rid);
-
-
-
-
-
-
-
- ifx_fieldtypes
- Liste les champs Informix SQL.
-
-
- Description
-
- array ifx_fieldtypes
- int result_id
-
-
- Retourne un tableau associatif avec les noms des champs comme clés, et les types
- SQL comme valeur. En cas d'erreur, retourne FALSE.
-
-
- Nom de champs et type SQL.
-
-$types = ifx_fieldtypes ($resultid);
-if (! isset ($types)) {
- ... error ...
-}
-for ($i = 0; $i < count($types); $i++) {
- $fname = key($types);
- printf("%s :\t type = %s\n", $fname, $types[$fname]);
- next($types);
-}
-
-
-
-
-
-
-
- ifx_fieldproperties
- Liste les propriétés des champs SQL.
-
-
- Description
-
- array ifx_fieldproperties
- int result_id
-
-
- Retourne un tableau associatif avec les nom des champs comme clé, et les données
- de propriétés des champs comme valeur. Retourne FALSE en cas d'erreur.
-
-
- Retourne les propriétés Informix SQL pour tous les champs d'une requête, sous la
- forme d'un tableau associatif. Les propriétés sont présentées sous la forme
- : "SQLTYPE;longueur ;précision;échelle;ISNULLABLE" avec SQLTYPE qui représente
- le type de données Informix tel que "SQLVCHAR"etcÖ. et
- ISNULLABLE = "Y" ou "N" (le champs peut contenir NULL ou pas : Oui ou Non).
-
-
- Informix SQL fieldproperties
-
-$properties = ifx_fieldtypes ($resultid);
-if (! isset($properties)) {
- ... error ...
-}
-for ($i = 0; $i < count($properties); $i++) {
- $fname = key ($properties);
- printf ("%s:\t type = %s\n", $fname, $properties[$fname]);
- next ($properties);
-}
-
-
-
-
-
-
-
- ifx_num_fields
- Retourne le nombre de colonnes dans une requête.
-
-
- Description
-
- int ifx_num_fields
- int result_id
-
-
- Retourne le nombre de colonnes dans la requête result_id
- ou FALSE en cas d'erreur.
-
-
- Après avoir préparé ou exécuté une requête, cette fonction retourne le nombre
- de colonne dans la requête.
-
-
-
-
-
-
- ifx_num_rows
- Compte le nombre de ligne déjà lues dans un résultat.
-
-
- Description
-
- int ifx_num_rows
- int result_id
-
-
- Compte le nombre de ligne déjà lues dans le résultat result_id
- après ifx_query ou ifx_do.
-
-
-
-
-
-
- ifx_free_result
- Libère les ressources prises par un résultat.
-
-
- Description
-
- int ifx_free_result
- int result_id
-
-
- Libère les ressources prises par le résultat result_id.
- Retourne FALSE en cas d'erreur.
-
-
-
-
-
-
- ifx_create_char
- Crée un objet char.
-
-
- Description
-
- int ifx_create_char
- string param
-
-
- Crée un objet char. param sera le contenu de l'objet.
-
-
-
-
-
-
- ifx_free_char
- Supprime un objet char.
-
-
- Description
-
- int ifx_free_char
- int bid
-
-
- Supprime l'objet char bid.
- Retourne FALSE en cas d'erreur, et sinon TRUE.
-
-
-
-
-
-
- ifx_update_char
- Modifie le contenu d'un objet char.
-
-
- Description
-
- int ifx_update_char
- int bid
- string content
-
-
- Modifie le contenu de l'objet char repéré par son
- identifiantbid. content est une
- chaîne avec les nouvelles données. Retourne. FALSE en cas d'erreur, et sinon,
- TRUE.
-
-
-
-
-
-
- ifx_get_char
- Retourne le contenu d'un objet char.
-
-
- Description
-
- int ifx_get_char
- int bid
-
-
- Retourne le contenu de l'objet associé à l'identifiant bid.
-
-
-
-
-
-
- ifx_create_blob
- Crée un objet BLOB.
-
-
- Description
-
- int ifx_create_blob
- int type
- int mode
- string param
-
-
- Crée un objet BLOB.
-
-
- type: 1 = TEXT, 0 = BYTE
-
-
- mode: 0 = L'objet BLOB place le contenu en mémoire ;
- 1 = L'objet BLOB place le contenu dans un fichier.
-
-
- param: Si mode = 0: pointeur du contenu,
- si mode = 1: pointeur vers un fichier.
-
-
- Retourne FALSE en cas d'erreur, et sinon, un identifiant de BLOB.
-
-
-
-
-
-
- ifx_copy_blob
- Duplique un objet BLOB.
-
-
- Description
-
- int ifx_copy_blob
- int bid
-
-
- Retourne FALSE en cas d'erreur, et sinon, l'identifiant du nouvel objet.
-
-
-
-
-
-
- ifx_free_blob
- Supprime un objet BLOB.
-
-
- Description
-
- int ifx_free_blob
- int bid
-
-
- Supprime l'objet BLOB bid. Retourne FALSE en cas d'erreur,
- et sinon TRUE.
-
-
-
-
-
-
- ifx_get_blob
- Retourne le contenu d'un objet BLOB.
-
-
- Description
-
- int ifx_get_blob
- int bid
-
-
- Retourne le contenu de l'objet BLOB associé à bid.
-
-
-
-
-
-
- ifx_update_blob
- Modifie le contenu d'un objet BLOB.
-
-
- Description
-
- ifx_update_blob
- int bid
- string content
-
-
- Modifie le contenu de l'objet BLOB repéré par sont identifiant
- bid. content est une chaîne
- contenant les nouvelles données.
- Retourne FALSE en cas d'erreur, et sinon, TRUE.
-
-
-
-
-
-
- ifx_blobinfile_mode
-
- Choisi le mode par défaut des objets BLOB pour toutes les requêtes SELECT.
-
-
-
- Description
-
- void ifx_blobinfile_mode
- int mode
-
-
- Choisi le mode par défaut des objets BLOB pour toutes les requêtes SELECT.
- Mode "0" chargera les BLOB de type Byte en mémoire ;
- Mode "1" sauvera les BLOB de type Byte dans un fichier.
-
-
-
-
-
-
- ifx_textasvarchar
- Choisi le mode par défaut des objets text.
-
-
- Description
-
- void ifx_textasvarchar
- int mode
-
-
- Choisi le mode par défaut des objets TEXT.
- Le mode "0" retournera un identifiant de BLOB
- et le mode "1" retourne le BLOB sous la forme d'un (gros) varchar.
-
-
-
-
-
-
- ifx_byteasvarchar
- Choisi le mode par défaut des objets BYTE.
-
-
- Description
-
- void ifx_byteasvarchar
- int mode
-
-
- Choisi le mode par défaut des objets BYTE.
- Le mode "0" retournera l'identifiant de BLOB, et
- le mode "1" retourenra le contenu du text sous la forme d'un VARCHAR.
-
-
-
-
-
-
- ifx_nullformat
-
- Choisi le mode par défaut de lecture des valeurs.
-
-
-
- Description
-
- void ifx_nullformat
- int mode
-
-
- Choisi le mode par défaut de lecture des valeurs. Le mode "0" retourne "",
- et le mode "1" retourne "NULL".
-
-
-
-
-
-
- ifxus_create_slob
- Crée un objet SLOB et l'ouvre.
-
-
- Description
-
- int ifxus_create_slob
- int mode
-
-
- Crée un objet SLOB et l'ouvre.
- Les modes valides sont : 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND,
- 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> ou une combinaison des
- précédents. Vous pouvez aussi utiliser les constantes suivantes :
- IFX_LO_RDONLY, IFX_LO_WRONLY etc. Retourne FALSE en cas d'erreur, et sinon,
- l'identifiant de l'objet SLOB.
-
-
-
-
-
-
- ifx_free_slob
- Supprime un objet SLOB.
-
-
- Description
-
- int ifxus_free_slob
- int bid
-
-
- Supprime un objet SLOB. bid est l'identifiant de
- l'objet SLOB. Retourne FALSE en cas d'erreur, et sinon TRUE.
-
-
-
-
-
-
- ifxus_close_slob
- Ferme un objet SLOB.
-
-
- Description
-
- int ifxus_close_slob
- int bid
-
-
- Ferme l'objet SLOB représenté par son identifiant bid.
- Retourne FALSE en cas d'erreur, et sinon, TRUE.
- TRUE.
-
-
-
-
-
-
- ifxus_open_slob
- Ouvre un objet SLOB.
-
-
- Description
-
- int ifxus_open_slob
- long bid
- int mode
-
-
- Ouvre un objet SLOB. bid est un identifiant d'objet SLOB.
- Les modes valides sont : 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND,
- 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> ou une combinaison des valeurs
- précédentes. Retourne FALSE en cas d'erreur, et sinon, l'identifiant du
- nouvel objet.
-
-
-
-
-
-
- ifxus_tell_slob
- Retourne le fichier courant, ou la position courante.
-
-
- Description
-
- int ifxus_tell_slob
- long bid
-
-
- Retourne le fichier courant, ou la position courante d'un objet SLOB ouvert.
- bid est un identifiant d'objet SLOB. Retourne FALSE en cas
- d'erreur, et sinon, la position du pointeur de fichier.
-
-
-
-
-
-
- ifxus_seek_slob
- Fixe le fichier courant, ou la position courante.
-
-
- Description
-
- int ifxus_seek_slob
- long bid
- int mode
- long offset
-
-
- Fixe le fichier courant, ou la position du pointeur de fichier, pour un objet
- SLOB ouvert. bid est un identifiant d'objet SLOB.
- Les modes valides sont : 0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END et
- offset est un octet d'offset. Retourne FALSE en cas
- d'erreur, et sinon, la position du pointeur de fichier.
-
-
-
-
-
-
- ifxus_read_slob
- Lit n bytes d'un objet SLOB.
-
-
- Description
-
- int ifxus_read_slob
- long bid
- long nbytes
-
-
- Lit nbytes octets de l'objet SLOB bid.
- bid est un identifiant d'objet SLOB existant, et
- nbytes est le nombre d'octets à lire. Retourne FALSE en
- cas d'erreur, et sinon, une chaîne de caractères.
-
-
-
-
-
-
- ifxus_write_slob
- Ecrit une chaîne dans un objet SLOB.
-
-
- Description
-
- int ifxus_write_slob
- long bid
- string content
-
-
- Ecrit une chaîne dans un objet SLOB. bid est un
- identifiant d'objet SLOB et content sont les données à
- écrire. Retourne FALSE en cas d'erreur, et sinon, le nombre d'octets écrits.
-
-
-
-
-
-
-
+
+ Fonctions Informix
+ Informix
+
+
+ Les pilotes d'accès à Informix pour Online (ODS) 7.x, SE 7.x,
+ Universal Server (IUS) 9.x et IDS 2000 sont implémentés dans
+ "functions/ifx.ec" et "functions/php3_ifx.h". Le support ODS 7.x est
+ plutôt complet, et accepte les colonnes de type BYTE et TEXT.
+ Le support IUS 9.x est partiellment fini, de nouveau types sont disponibles,
+ mais SLOB et CLOB sont toujours en développement.
+
+
+ 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
+ "configure --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 lancant 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.
+
+
+
+ NULL values
+
+ 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 celle qui contiennent la valeur NULL.
+
+
+
+
+
+ ifx_connect
+ Ouvre une connexion à un serveur Informix.
+
+
+ Description
+
+
+ int ifx_connect
+ string database
+
+ string userid
+
+ string password
+
+
+
+
+ ifx_connect retourne un identifiant de connexion, en
+ cas de succès, et FALSE sinon.
+
+
+ ifx_connect établit une connexion à un
+ serveur Informix. Tous les arguments sont optionnels, et, si ils viennent
+ à manquer, les valeurs par défaut seront prises dans le
+ fichier de configuration .
+ (ifx.default_host pour l'hôte par défaut) (Les librairies
+ Informix utiliseront la variable d'environnement $INFORMIXSERVER
+ si ifx.default_host n'est pas définie). ifx.default_user pour
+ l'utilisateur, et ifx.default_password comme mot de passe (si aucun n'a
+ été défini).
+
+
+ Si un deuxième appel à ifx_connect est
+ fait avec les mêmes arguments, l'identifiant de connexion
+ déjà ouvert sera retourné.
+
+
+ Le lien avec le serveur sera fermé dès que le script se
+ termine, ce qui fait qu'il n'est pas nécessaire de terminer
+ les connexions avec ifx_close.
+
+
+ Voir aussiifx_pconnect et ifx_close.
+
+ Connection à un serveur Informix
+
+$conn_id = ifx_pconnect ("mydb <email protected>", "imyself", "mypassword");
+
+
+
+
+
+
+
+ ifx_pconnect
+
+ Ouvre une connexion persistante à un serveur Informix.
+
+
+
+ Description
+
+
+ int ifx_pconnect
+ string
+ database
+
+ string
+ userid
+
+ string
+ password
+
+
+
+
+ ifx_pconnect retourne un identifiant positif de
+ connexion Informix, ou FALSE, en cas d'erreur.
+
+
+ ifx_pconnect se comporte de manière très
+ similaire à ifx_connect avec deux
+ différences importantes :
+
+
+ ifx_pconnect se comporte exactement comme
+ ifx_connect lorsque PHP n'est pas un module Apache.
+ Lors de la connexion, la fonction va chercher une connexion déjà
+ ouverte avec le même hôte, le même nom d'utilisateur, et le
+ même mot de passe. Si elle en trouve une, elle retournera un
+ identifiant de cette connexion, au lieu d'en ouvrir une nouvelle.
+
+
+ Deuxièmement, la connexion au serveur SQL ne sera pas automatiquement
+ refermée à la fin de l'exécution du script. Au contraire,
+ le lien va rester ouvert (ifx_close ne fermera pas les
+ connexions établies avec ifx_pconnect).
+
+
+ Ainsi, ce type de lien est appelé 'persistant'.
+
+
+ Voir aussi: ifx_connect.
+
+
+
+
+
+ ifx_close
+ Ferme une connexion à un serveur Informix.
+
+
+ Description
+
+
+ int ifx_close
+ int
+ link_identifier
+
+
+
+
+ ifx_close retourne toujours TRUE.
+
+
+ ifx_close ferme le lien au serveur de données
+ Informix associé à l'identifant de connexion
+ link_identifier.
+ Si l'identifiant du lien n'est pas spécifié, la
+ dernière connexion est utilisée.
+
+
+ Notez qu'il n'est généralement pas besoin d'appeler
+ cette fonction, car les connexions non persistantes seront
+ automatiquement fermées.
+
+
+ ifx_close ne peut pas fermer une connexion ouverte avec
+ ifx_pconnect.
+
+
+ Voir aussi: ifx_connect et ifx_pconnect.
+
+ Fermer une connexion Informix
+
+$conn_id = ifx_connect ("mydb <email protected>", "itsme", "mypassword");
+... some queries and stuff ...
+ifx_close($conn_id);
+
+
+
+
+
+
+
+ ifx_query
+ Envoie une requête Informix.
+
+
+ Description
+
+
+ int ifx_query
+ string query
+ int
+ link_identifier
+
+ int
+ cursor_type
+
+ mixed
+
+ blobidarray
+
+
+
+
+
+ ifx_query retourne un identifiant positif de
+ résultat Informix en cas de succès, et FALSE en cas d'erreur.
+
+
+ L'entier de type "identifiant de résultat" est utilisé par4
+ d'autres fonctions pour lire les résultats. Pour un exemple,
+ reportez vous à ifx_affected_rows pour
+ connaître le nombre de lignes affectées.
+
+
+ ifx_query envoie une requête au serveur
+ actif courant, associé à l'identifiant de connexion
+ link_identifier. Si
+ link_identifier n'est pas fourni,
+ la dernière connexion ouverte sera utilisée. Si aucune connexion
+ n'a été ouverte, ifx_query va essayer d'en
+ créer une, en appelant ifx_connect.
+
+
+ Exécute la requête query sur la connexion
+ conn_id. Pour les requêtes de type SELECT, un
+ pointeur est déclaré, et ouvert. L'option
+ cursor_type permet de choisir le type de
+ pointeur, "scroll" et/ou "hold". cursor_type accepte
+ les deux valeurs séparées, et leur combinaison. Les
+ requêtes d'autre type sont à exécution immédiate.
+
+
+ Le nombre de lignes affectées (estimé ou exact) est
+ enregistré pour être lu avec ifx_affected_rows.
+
+
+ Si vous avez une colonne de type BLOB (BYTE ou TEXT) dans une requête de
+ modification, vous pouvez passer un paramètre
+ BLOBidarray qui contiendra les identifiants
+ des BLOB à modifier, et vous devrez remplacer cette colonne par
+ un point d'interrogation (?) dans la requête.
+
+
+ Si le contenu d'une colonne de type TEXT (ou BYTE) vous pouvez
+ aussi utiliser les fonctions ifx_textasvarchar et
+ ifx_byteasvarchar. Cela vous permettra d'utiliser
+ les colonnes TEXT ( ou BYTE ) comme des colonnes de type VARCHAR (mais
+ plus long, tout de même), et vous n'aurez pas besoin de l'identifiant
+ de BLOB.
+
+
+ Avec les fonctions ifx_textasvarchar et
+ ifx_byteasvarchar (valeurs par défaut), les
+ requêtes SELECT retourneront des identifiants de BLOB. Cet identifiant
+ peut être une chaîne ou un fichier, suivant la configuration
+ (voir plus loin).
+
+
+ Voir aussi : ifx_connect.
+
+
+ Afficher toutes les lignes de la table "ordres" sous la forme html
+
+
+ifx_textasvarchar(1); // Utilisation du mode "text mode" pour les BLOBs
+$res_id = ifx_query("select * from orders", $conn_id);
+if (! $res_id) {
+ printf("Impossible de selectionner des lignes dans : %s\n<br>%s<br>\n", ifx_error());
+ ifx_errormsg();
+ die;
+}
+ifx_htmltbl_result($res_id, "border=\"1\"");
+ifx_free_result($res_id);
+
+
+
+ Insertion de valeurs dans la table "catalogue"
+
+ // créer un identifiant de BLOB pour une colonne de type BYTE et une de type TEXT
+$textid = ifx_create_blob(0, 0, "Colonne Text en mémoire");
+$byteid = ifx_create_blob(1, 0, "Colonne Byte en mémoire");
+ // Stocke l'identifiant du BLOB dans le tableau BLOBid
+$BLOBidarray[] = $textid;
+$BLOBidarray[] = $byteid;
+ // launch query
+$query = "insert into catalog (stock_num, manu_code, " .
+ "cat_descr,cat_picture) values(1,'HRO',?,?)";
+$res_id = ifx_query($query, $conn_id, $BLOBidarray);
+if (! $res_id) {
+ ... erreur ...
+}
+ // libération du résultat
+ifx_free_result($res_id);
+
+
+
+
+
+
+
+ ifx_prepare
+ Prépare une requête SQL pour l'exécution.
+
+
+ Description
+
+
+ int ifx_prepare
+ string query
+ int conn_id
+ int
+ cursor_def
+
+ mixed blobidarray
+
+
+
+ ifx_prepare retourne un entier identifiant de
+ résultat result_id à utiliser
+ avec ifx_do. Modifie la valeur de
+ affected_rows, pour accès ultérieur
+ avec ifx_affected_rows.
+
+
+ Prépare la requête query sur la connexion
+ conn_id. Pour les requêtes de type "select-type"
+ un pointeur de résultat est déclaré et ouvert. L'option
+ cursor_type permet de choisir le type de pointeur :
+ "scroll" et/ou "hold". Les valeurs peuvent être combinées ensemble
+ (IFX_SCROLL, IFX_HOLD).
+
+
+ Le nombre de ligne affectérs (estimé ou exact) est
+ enregistré, pour être lu avec la fonction
+ ifx_affected_rows.
+
+
+ Si vous avez une colonne de type BLOB (BYTE ou TEXT) dans une requête de
+ modification, vous pouvez passer un paramètre
+ BLOBidarray qui contiendra les identifiants
+ des BLOB à modifier, et vous devrez remplacer cette colonne par
+ un point d'interrogation (?) dans la requête.
+
+
+ Si le contenu d'une colonne de type TEXT (ou BYTE) vous pouvez aussi
+ utiliser les fonctions ifx_textasvarchar et
+ ifx_byteasvarchar. Cela vous permettra d'utiliser
+ les colonnes TEXT (ou BYTE) comme des colonnes de type VARCHAR (mais plus
+ long, tout de même), et vous n'aurez pas besoin de l'identifiant de BLOB.
+
+
+ Avec les fonctions ifx_textasvarchar et
+ ifx_byteasvarchar (valeurs par défaut), les
+ requêtes SELECT retourneront des identifiants de BLOB.
+ Cet identifiant peut être une chaîne ou un fichier,
+ suivant la configuration (voir plus loin).
+
+
+ Voir aussi ifx_do.
+
+
+
+
+
+ ifx_do
+
+ Exécute une requête SQL déjà préparée.
+
+
+
+ Description
+
+
+ int ifx_do
+ int result_id
+
+
+
+ ifx_do retourne TRUE en cas de succès,
+ FALSE en cas d'erreur.
+
+
+ Exécute une requête qui a déjà été
+ préparée, ou crée un pointeur pour cela.
+
+
+ Ne libère pas result_id en cas d'erreur.
+
+
+ De plus, elle fixe la valeur de result_id pour
+ accès ultérieur par ifx_affected_rows.
+
+
+ Voir aussi : ifx_prepare. Il y a un exemple.
+
+
+
+
+
+ ifx_error
+ Retourne le code d'erreur de la dernière requête Informix.
+
+
+ Description
+
+
+ string ifx_error
+
+
+
+
+ Les codes d'erreur Informix (SQLSTATE & SQLCODE) formaté comme suit :
+
+
+ x [SQLSTATE = aa bbb SQLCODE=cccc]
+
+
+ avec x = space : aucune erreur
+
+
+ E : erreur
+
+
+ N : il n'y a plus d'informations
+
+
+ W : Alerte
+
+
+ ? : Undéfinie
+
+
+ Si le caractère vaut autre chose qu'un espace, SQLSTATE et SQLCODE
+ décrit l'erreur avec plus de détails.
+
+
+ Reportez vous au manuel Informix pour trouver la description de
+ SQLSTATE et SQLCODE
+
+
+ Retourne une chaîne avec un caractères, décrivant le
+ résultat général de la commande, et aussi SQLSTATE et
+ SQLCODE associé à la plus récente requête SQL
+ exécutée. Le format de la chaîne est
+ "(char) [SQLSTATE=(deux chiffres) (trois chiffres) SQLCODE=(un chiffre)]".
+ Le premier caractère peut être ''
+ (espace) (succès), 'W' (Alerte),
+ 'E' (une erreur est survenue durant le traitement )
+ ou 'N' (aucune donnée de retour).
+
+
+ Voir aussi: ifx_errormsg.
+
+
+
+
+
+ ifx_errormsg
+
+ Retourne le message d'erreur de la dernière requête Informix.
+
+
+
+ Description
+
+
+ string ifx_errormsg
+ int
+ errorcode
+
+
+
+
+ ifx_errormsg retourne le plus récent
+ message d'erreur ou, lorsque l'option errorcode est
+ présent, le message d'erreur associé à
+ errorcode.
+
+
+ Voir aussi: ifx_error.
+
+
+
+printf("%s\n<br>", ifx_errormsg(-201));
+
+
+
+
+
+
+ ifx_affected_rows
+
+ Retourne le nombre de lignes affectées par une requête.
+
+
+
+ Description
+
+
+ int ifx_affected_rows
+ int result_id
+
+
+
+ ifx_affected_rows retourne le nombre de lignes
+ affectées par la requête associée à
+ result_id.
+
+
+ result_id est un identifiant valide de résultat
+ retourné par ifx_query ou
+ ifx_prepare.
+
+
+ Pour les INSERT, UPDATE et DELETE, ce nombre est le nombre exact de lignes
+ affectées (sqlerrd[2]). Pour les SELECT, ce n'est qu'une estimation
+ (sqlerrd[0]). Ne vous y fiez pas.
+
+
+ ifx_affected_rows est très pratique après
+ ifx_prepare pour limiter la taille des résultats.
+
+
+ Voir aussi : ifx_num_rows.
+
+
+ Nombre de lignes affectées
+
+$rid = ifx_prepare ("select * from emp
+ where name like " . $name, $connid);
+if (! $rid) {
+ ... erreur ...
+}
+$rowcount = ifx_affected_rows ($rid);
+if ($rowcount > 1000) {
+ printf ("Trop de lignes trouvées (%d)\n<br>", $rowcount);
+ die ("Ressayez avec une autre requête. <br>\n");
+}
+
+
+
+
+
+
+ ifx_getsqlca
+
+ Retourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête.
+
+
+
+ Description
+
+
+ array ifx_getsqlca
+ int result_id
+
+
+
+ ifx_getsqlca retourne une pseudo-ligne (tableau
+ associatif) avec sqlca.sqlerrd[0] à sqlca.sqlerrd[5] après
+ la requête associée result_id.
+
+
+ result_id est un identifiant valide de résultat
+ retourné par ifx_query ou
+ ifx_prepare.
+
+
+ Pour les requêtes INSERT, UPDATE et DELETE, les valeurs
+ retournées sont celles fixées par le serveur après
+ avoir exécuté la requête. Cela donne accès au
+ nombre de ligne affectées, ainsi qu'au numéro de série
+ d'insertion. Pour les requêtes de type SELECT, les valeurs
+ retournées sont celles qui ont été
+ préparées. Utiliser cette fonction économise
+ l'exécution d'une requête "select dbinfo('sqlca.sqlerrdx')",
+ étant donné qu'elle retourne les valeurs qui ont été
+ sauvées par le pilote ifx au moment approprié.
+
+
+ Lire les valeurs de sqlca.sqlerrd[x]
+
+/* On suppose que la première colonne d'une table 'quelconque' est un numéro de série */
+$qid = ifx_query("insert into sometable values(0, '2nd column', 'another column' ", $connid);
+if (! $qid) {
+ ... error ...
+}
+$sqlca = ifx_getsqlca ($qid);
+$serial_value = $sqlca["sqlerrd1"];
+echo "Le numéro de série de la valeur insérée est : " . $serial_value<br>\n";
+
+
+
+
+
+
+ ifx_fetch_row
+
+ Retourne une ligne sous la forme d'un tableau énuméré.
+
+
+
+ Description
+
+
+ array ifx_fetch_row
+ int result_id
+ mixed
+ position
+
+
+
+
+ ifx_fetch_row retourne un tableau associatif qui
+ contient la ligne retournée, ou FALSE si il ne reste plus de
+ lignes à lire, ou si il a eu une erreur.
+
+
+ Les colonnes de types BLOB sont retournées sous la forme d'un
+ identifiant à utiliser avec ifx_get_blob
+ à moins que vous n'ayez utilisé la fonction
+ ifx_textasvarchar ou
+ ifx_byteasvarchar, et dans ce cas, les BLOBs
+ seront retournés sous forme de chaîne.
+ Retourne FALSE en cas d'erreur.
+
+
+ result_id est un identifiant valide de résultat,
+ retourné par ifx_query ou
+ ifx_prepare (Requêtes SELECT seulement !).
+
+
+ position est un paramètre
+ optionnel, pour une opération de lecture d'informations sur un pointeur
+ de type "scroll": "NEXT", "PREVIOUS", "CURRENT", "FIRST", "LAST" ou encore un
+ nombre. Si vous spécifiez un nombre, la ligne d'index absolu sera
+ retournée. Ce paramètre est optionnel, et ne fonctionne qu'avec
+ les pointeurs de type "scroll".
+
+
+ ifx_fetch_row retourne une ligne de données d'un
+ résultat associé à l'identifiant de résultat
+ result_id. La ligne est retournée sous la
+ forme d'un tableau associatif.
+
+
+ Les appels ultérieurs à ifx_fetch_row
+ retourneront la ligne suivante, ou FALSE si il n'y a plus de ligne.
+
+
+ Exemple avec ifx_fetch_row
+
+$rid = ifx_prepare ("select * from emp where name like " . $name,
+ $connid, IFX_SCROLL);
+if (! $rid) {
+ ... error ...
+}
+$rowcount = ifx_affected_rows($rid);
+if ($rowcount > 1000) {
+ printf ("Trop de lignes dans le résultats. (%d)\n<br>", $rowcount);
+ die ("Recommencez votre requête. <br>\n");
+}
+if (! ifx_do ($rid)) {
+ ... erreur ...
+}
+$row = ifx_fetch_row ($rid, "NEXT");
+while (is_array($row)) {
+ for(reset($row); $fieldname=key($row); next($row)) {
+ $fieldvalue = $row[$fieldname];
+ printf ("%s = %s,", $fieldname, $fieldvalue);
+ }
+ printf("\n<br>");
+ $row = ifx_fetch_row ($rid, "NEXT");
+}
+ifx_free_result ($rid);
+
+
+
+
+
+
+ ifx_htmltbl_result
+
+ Lit toutes les lignes d'un tableau, et la met sous la forme d'un tableau HTML.
+
+
+
+ Description
+
+
+ int ifx_htmltbl_result
+ int result_id
+ string
+ html_table_options
+
+
+
+
+ ifx_htmltbl_result lit toutes les lignes d'un
+ tableau, et la met sous la forme d'un tableau HTML, ou FALSE en cas
+ d'erreur.
+
+
+ Affiche les lignes avec des balises HTML. Le second argument permet
+ de modifier les options de table.
+
+
+ Affichage sous la forme d'une table HTML
+
+$rid = ifx_prepare ("select * from emp where name like " . $name,
+ $connid, IFX_SCROLL);
+if (! $rid) {
+ ... error ...
+}
+$rowcount = ifx_affected_rows ($rid);
+if ($rowcount > 1000) {
+ printf ("Trop de lignes dans le résultat : (%d)\n<br>", $rowcount);
+ die ("Recommencez votre requête <br>\n");
+}
+if (! ifx_do($rid) {
+ ... erreur ...
+}
+ifx_htmltbl_result ($rid, "border=\"2\"");
+ifx_free_result($rid);
+
+
+
+
+
+
+ ifx_fieldtypes
+ Liste les champs Informix SQL.
+
+
+ Description
+
+
+ array ifx_fieldtypes
+ int result_id
+
+
+
+ ifx_fieldtypes retourne un tableau associatif avec
+ les noms des champs comme clés, et les types SQL comme valeur. En
+ cas d'erreur, retourne FALSE.
+
+
+ Nom de champs et type SQL.
+
+$types = ifx_fieldtypes ($resultid);
+if (! isset ($types)) {
+ ... error ...
+}
+for ($i = 0; $i < count($types); $i++) {
+ $fname = key($types);
+ printf("%s :\t type = %s\n", $fname, $types[$fname]);
+ next($types);
+}
+
+
+
+
+
+
+ ifx_fieldproperties
+ Liste les propriétés des champs SQL.
+
+
+ Description
+
+
+ array ifx_fieldproperties
+ int result_id
+
+
+
+ ifx_fieldproperties retourne un tableau associatif
+ avec les nom des champs comme clé, et les données de
+ propriétés des champs comme valeur. Retourne FALSE en
+ cas d'erreur.
+
+
+ Retourne les propriétés Informix SQL pour tous les champs
+ d'une requête, sous la forme d'un tableau associatif. Les
+ propriétés sont présentées sous la forme
+ : "SQLTYPE;longueur ;précision;échelle;ISNULLABLE" avec
+ SQLTYPE qui représente le type de données Informix tel
+ que "SQLVCHAR" et ISNULLABLE = "Y" ou "N" (le champs peut contenir NULL
+ ou pas : Oui ou Non).
+
+
+ Exemple avec ifx_fieldproperties
+
+$properties = ifx_fieldtypes ($resultid);
+if (! isset($properties)) {
+ ... error ...
+}
+for ($i = 0; $i < count($properties); $i++) {
+ $fname = key ($properties);
+ printf ("%s:\t type = %s\n", $fname, $properties[$fname]);
+ next ($properties);
+}
+
+
+
+
+
+
+ ifx_num_fields
+ Retourne le nombre de colonnes dans une requête.
+
+
+ Description
+
+
+ int ifx_num_fields
+ int result_id
+
+
+
+ ifx_num_fields retourne le nombre de colonnes
+ dans la requête result_id ou FALSE en cas d'erreur.
+
+
+ Après avoir préparé ou exécuté une
+ requête, cette fonction retourne le nombre de colonne dans la
+ requête.
+
+
+
+
+
+ ifx_num_rows
+
+ Compte le nombre de ligne déjà lues dans un résultat.
+
+
+
+ Description
+
+
+ int ifx_num_rows
+ int result_id
+
+
+
+ ifx_num_rows compte le nombre de ligne déjà
+ lues dans le résultat result_id après
+ ifx_query ou ifx_do.
+
+
+
+
+
+ ifx_free_result
+ Libère les ressources prises par un résultat.
+
+
+ Description
+
+
+ int ifx_free_result
+ int result_id
+
+
+
+ ifx_free_result libère les ressources prises
+ par le résultat result_id.
+ Retourne FALSE en cas d'erreur.
+
+
+
+
+
+ ifx_create_char
+ Crée un objet char.
+
+
+