(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
Envoie une requête et lit tous les résultats.
L'objet DBX retournée par la fonction dbx_connect()
La requête SQL.
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_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 ) :
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);
?>
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
?>
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";
}
?>
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";
?>
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);
?>
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.