dbx_query
(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)
dbx_query — Envoie une requ�te et lit tous les r�sultats DBX
Description
Envoie une requ�te et lit tous les r�sultats.
Liste de param�tres
- link_identifier
-
L'objet DBX retourn�e par la fonction dbx_connect()
- sql_statement
-
La requ�te SQL.
- flags
-
Le param�tre flags sert � contr�ler la quantit� d'informations retourn�e. Il peut �tre n'importe quelle combinaisons par l'op�rateur OR des constantes ci-apr�s. Les constantes remplacent la configuration du php.ini.
- DBX_RESULT_INDEX
- Ce param�tre est toujours activ�, c'est � dire que l'objet retourn� dispose du membre data qui est un tableau � deux dimensions, index� num�riquement. Par exemple, dans l'expression data[2][3] 2 repr�sente le num�ro de ligne et 3 repr�sente le num�ro de colonne. Les premi�res lignes et colonnes sont index�es � 0. Si DBX_RESULT_ASSOC est aussi sp�cifi�, l'objet retourn� contient en plus les informations li�es � DBX_RESULT_INFO, m�me s'il n'a pas �t� sp�cifi�.
- DBX_RESULT_INFO
- Cette option fournit des informations sur les colonnes, comme les noms des champs et leur type.
- DBX_RESULT_ASSOC
- Cette option fait que la valeur des champs peut �tre accessible avec le nom de la colonne, utilis� comme cl� dans le tableau du membre data. Les r�sultats ainsi associ�s sont des r�f�rences sur les valeurs identifi�es par les index num�riques, ce qui fait que modifier data[0][0] fait que data[0]['nom_de_la_premiere_colonne'] sera aussi modifi�.
- DBX_RESULT_UNBUFFERED
- Cet option ne cr�e pas de propri�t� data et la propri�t� rows sera initialement positionn�e � 0. Utilisez ce flag pour des jeux d'enregistrements importants et utilisez dbx_fetch_row() pour retrouver le r�sultat ligne par ligne. dbx_fetch_row() retournera les lignes qui se conforment au flag de la requ�te. Par ailleurs, cela mettra � jour les lignes � chaque appel de la fonction.
- DBX_COLNAMES_UNCHANGED
- La casse du nom des colonnes retourn�es ne sera pas modifi�e.
- DBX_COLNAMES_UPPERCASE
- Les noms de colonnes seront mis en majuscules.
- DBX_COLNAMES_LOWERCASE
- Les noms de colonnes seront mis en minuscules.
Notez que DBX_RESULT_INDEX est toujours active, ind�pendamment de la valeur de flags . Cela signifie que seules les combinaisons suivantes sont utiles :
- DBX_RESULT_INDEX
- DBX_RESULT_INDEX | DBX_RESULT_INFO
- DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - c'est la valeur par d�faut, si flags est omis.
Valeurs de retour
dbx_query() retourne un objet dbx_result_object ou 1 en cas de succ�s (un objet de r�sultat ne sera retourn� que pour les requ�tes SQL qui retournent un r�sultat), ou 0 en cas d'erreur. L'objet r�sultant n'est retourn� que si la requ�te donn�e par sql_statement produit un jeu d'enregistrements. (i.e. une requ�te SELECT, m�me si le r�sultat est vide).
L'objet retourn� a 5 membres (�ventuellement 4, suivant les valeurs de flags ) :
- handle
-
Ceci est une ressource repr�sentant la connexion � la base de donn�es, et il peut �tre utilis� (si n�cessaire) avec les fonctions sp�cialis�es de la base.
<?php
$result = dbx_query($link, "SELECT id FROM table");
mysql_field_len($result->handle, 0);
?> - cols et rows
-
Ces deux membres contiennent respectivement le nombre de colonnes et de lignes.
<?php
$result = dbx_query($link, 'SELECT id FROM table');
echo $result->rows; // nombre de lignes
echo $result->cols; // nombre de champs
?> - info (optionnel)
-
Ce membre est retourn� uniquement si DBX_RESULT_INFO ou
DBX_RESULT_ASSOC sont sp�cifi�s dans le param�tre
flags
. C'est un tableau � deux dimensions,
avec deux lignes (name et
type) pour lire les informations de colonnes.
Exemple #1 Listes les types et noms de colonnes
<?php
$result = dbx_query($link, 'SELECT id FROM table',
DBX_RESULT_INDEX | DBX_RESULT_INFO);
for ($i = 0; $i < $result->cols; $i++ ) {
echo $result->info['name'][$i] . "\n";
echo $result->info['type'][$i] . "\n";
}
?> - data
-
Ce membre contient les r�sultats obtenus, possiblement associ�s
avec le nom de colonne, en fonction de la valeur du param�tre
flags
. Si DBX_RESULT_ASSOC
est activ�, il est possible d'utiliser aussi
$result->data[2]["nom_de_la_colonne"].
Exemple #2 Afficher le contenu d'une base
<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');
echo "<table>\n";
foreach ($result->data as $row) {
echo "<tr>\n";
foreach ($row as $field) {
echo "<td>$field</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
?>Exemple #3 Comment utiliser les requ�tes UNBUFFERED
<?php
$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);
echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
echo "<tr>\n";
foreach ($row as $field) {
echo "<td>$field</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
?>
Historique
Version | Description |
---|---|
5.0.0 | Ajout de la constante DBX_RESULT_UNBUFFERED. |
4.3.0 | Ajout des constantes DBX_COLNAMES_UNCHANGED, DBX_COLNAMES_UPPERCASE, et DBX_COLNAMES_LOWERCASE. |
Exemples
Exemple #4 Comment g�rer la valeur retourn�e
<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password")
or die("Impossible de se connecter");
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');
if (is_object($result) ) {
// ... fa�tes des actions ici, voir les exemples d�taill�s ci-dessus ...
// tout d'abord, afficher les noms et types de champs
// puis, afficher un tableau contenant les valeurs retourn�es
} else {
exit("�chec de la requ�te");
}
dbx_close($link);
?>
Notes
Note: Reportez-vous aussi � la documentation de la base de donn�es que vous utilisez.
Les noms des colonnes pour les requ�tes sur des bases de donn�es Oracle sont retourn�s en minuscules.
Voir aussi
- dbx_escape_string() - Prot�ge une cha�ne de caract�res pour l'utiliser dans une requ�te
- dbx_fetch_row() - Lit une ligne dans un r�sultat DBX ayant l'option DBX_RESULT_UNBUFFERED activ�e
- dbx_connect() - Ouvre une connexion � une base de donn�es