dbx_query

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_queryEnvoie une requ�te et lit tous les r�sultats DBX

Description

mixed dbx_query ( object $link_identifier , string $sql_statement [, int $flags ] )

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->handle0);
?>

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