8.24 Fonctions dbx
8 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . dbx_close . dbx_compare . dbx_connect . dbx_error . dbx_escape_string . dbx_fetch_row ->dbx_query . dbx_sort
|
8.24.13 dbx_query()Envoie une requête et lit tous les résultats DBX[ Exemples avec dbx_query ] PHP 4 >= 4.0.6, PHP 5
object
dbx_query (
object
link_identifier
,
string
sql_statement
,
int
flags
)
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). La requête
est exécuté sur la connexion
link_identifier
.
Comment gérer la valeur retournée par dbx_query |
<?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) ) { // ... Faire quelque chose d'utile ici // premièrement, afficher les noms des champs et leurs types // et tracer un tableau avec les valeurs retournées } else { exit("La requête a échoué"); }
dbx_close($link); ?>
|
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 4.3.0)
-
La casse du nom des colonnes retournées ne sera pas modifiée.
-
DBX_COLNAMES_UPPERCASE
(disponible depuis PHP 4.3.0)
-
Les noms de colonnes seront mis en majuscules.
-
DBX_COLNAMES_LOWERCASE
(disponible depuis 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.
Un objet dbx_result_object 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.
Exemple avec dbx_query |
<?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.
Nombre de lignes et colonnes avec dbx_query |
<?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.
Listes les types et noms de colonnes avec dbplus |
<?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"]
.
Afficher le contenu d'une base avec dbplus |
<?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"; ?>
|
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";
?>
|
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_fetch_row
,
dbx_escape_string
et
dbx_connect
.
|