. . . . . . . . |
|
|
dbx_query
dbx_query (PHP 4 >= 4.0.6, PHP 5 <= 5.0.4) dbx_query -- Envoie une requête et lit tous les résultats DBX Descriptionmixed 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
La colonne comparée
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 (PHP 5)
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 (disponible depuis PHP PHP 4.3.0)
La casse du nom des colonnes retournées ne sera pas modifiée.
- DBX_COLNAMES_UPPERCASE (disponible depuis PHP PHP 4.3.0)
Les noms de colonnes seront mis en majuscules.
- DBX_COLNAMES_LOWERCASE (disponible depuis PHP PHP 4.3.0)
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.
- cols et rows
Ces deux membres contiennent respectivement
le nombre de colonnes et de lignes.
- 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";
?>
|
|
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); ?>
|
|
NotesNote :
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.
Retour au chapitre Php
|
|