(PHP 3 >= 3.0.3, PHP 4, PHP 5)
ifx_query -- Envoie une requête Informix
Description
resource
ifx_query ( string query, resource link_identifier [, int cursor_type [, mixed blobidarray]] )
ifx_query() retourne un identifiant valide 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() afin de
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.
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 est 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. Ces identifiants
peuvent être une chaîne ou un fichier, suivant la configuration
(voir plus loin).
Exemple 1.
Afficher toutes les lignes de la table "ordres" sous la forme html du serveur IFX
<?php 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 sélectionner 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); ?>
|
|
Exemple 2. Insertion de valeurs dans la table "catalogue" IFX
<?php
// 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;
// exécute la requête $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); ?>
|
|
Voir aussi
ifx_connect().