7.20 dbx
7 Index des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes prédefinies . dbx_close . dbx_compare . dbx_connect . dbx_error . dbx_escape_string . dbx_fetch_row ->dbx_query . dbx_sort
|
7.20.13 dbx_query()Envoie une requête et lit tous les résultats[ Exemples avec dbx_query ] PHP 4 >= 4.0.6
object
dbx_query (
object
link_identifier
,
string
sql_statement
,
long
flags
)
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.
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 quelquechose d'utile ici // first, print out field names and types // then, draw a table filled with the returned field values } else if ( $result == 1 ) { echo("Requête exécutée correctement, mais pas de résultat."); } 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 si 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 quie fait que modifier
data[0][0]
fait que
data[0]['nom_de_la_premiere_colonne']
sera aussi
modifié.
-
DBX_COLNAMES_UNCHANGED
(disponible depuis PHP 4.3.0)
-
La casse du nom des colonnes retournée 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épendemment 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, suivants
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 colonne et de
ligne.
$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 |
$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ésultat 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 |
$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";
|
Note |
Reportez-vous aussi à la documentation de la base de données que vous
utilisez.
|
Voir aussi
dbx_escape_string
et
dbx_connect
.
|