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 <function>ifx_fetch_row</function> + +$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 <function>ifx_fieldproperties</function> + +$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. + + +