Sommaire
dbx
dbx_close
dbx_connect
dbx_error
dbx_query
dbx_sort
dbx_cmp_asc
dbx_cmp_desc
|
6.21.4 dbx_query[ Exemples avec dbx_query ] PHP 4 >= 4.0.6Description
resource dbx_query(resource link_identifier ,string sql_statement ,[long flags ])
Attention |
Ce module est EXPERIMENTAL . Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utiliser ce module à vos risques et périls.
|
dbx_query retourne une ressource
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. Le paramètre
flags sert à contrôler la quantité
d'informations retournée. Il peut être n'importe quelle
combinaisons par OR des constantes : DBX_RESULT_INFO,
DBX_RESULT_INDEX, DBX_RESULT_ASSOC. DBX_RESULT_INFO fournit
des informations sur les colonnes, comme les noms des champs
et leur type. DBX_RESULT_INDEX retourne le résultat dans un
tableau indexé (par exemple, data[2][3], où 2 est le numéro
de ligne et 3 est le numéro de colonne), dont la première
colonne est indexée à 0. DBX_RESULT_ASSOC associe les noms
de colonnes avec leurs indices. Notez que DBX_RESULT_INDEX est
toujours retourné, indépendamment de la valeur de
flags. Si DBX_RESULT_ASSOC est spécifié,
DBX_RESULT_INFO est aussi retourné, même s'il n'a pas été
spécifié. Ce qui signifie que les seules combinaisons envisageables
sont
DBX_RESULT_INDEX,
DBX_RESULT_INDEX | DBX_RESULT_INFO et
DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC. La dernière
combinaison est la valeur par défaut de flags.
Les résultats associés sont en fait des références, ce qui fait que
modifier data[0][0], revient à modifier
data[0]['fieldnameforfirstcolumn'].
Un objet dbx_result_object a 5 membres (éventuellement 4, suivants
les valeurs de flags) : 'handle', 'cols', 'rows',
'info' (optionnel) et 'data'. Handle est un identifiant de résultat,
qui peut être utilisé avec les fonctions spécifiques à son module.
Par exemple :
|
<?php $result = dbx_query($link, "SELECT id FROM tbl"); mysql_field_len($result->handle, 0); ?>
|
Les membres cols et rows contiennent les numéros de colonne et de
champs.
|
<?php $result = dbx_query($link, "SELECT id FROM tbl"); echo "Taille du résultat: " . $result->rows . " x " . $result->cols . "<br>\n"; ?>
|
Le membre info n'est retourné que si DBX_RESULT_INFO et/ou
DBX_RESULT_ASSOC sont spécifié dans le paramètre flags.
C'est un deuxième tableau, qui possède deux lignes ("name" and "type"),
pour connaître les informations sur les colonnes.
|
<?php $result = dbx_query($link, "SELECT id FROM tbl"); echo "Nom de la colonne : " . $result->info["name"][0] . "<br>\n"; echo "Type de la colonne: " . $result->info["type"][0] . "<br>\n"; ?>
|
Le membre data contient les données effectivement lues,
éventuellement associées à des noms de colonnes. Si
DBX_RESULT_ASSOC est utilisé, il est possible d'utiliser
$result->data[2]["fieldname"].
Exemple avec dbx_query |
<?php $link = dbx_connect("odbc", "", "base de données", "utilisateur", "mot de passe") or die ("Impossible de se connecter"); $result = dbx_query($link, "SELECT id, parentid, description FROM tbl"); if ($result==0) echo "La requête a échoué\n<br>"; elseif ($result==1) { echo "La requête a réussie\n<br>"; } else { $rows=$result->rows; $cols=$result->cols; echo "<p>table dimension: {$result->rows} x {$result->cols}<br><table border=1>\n"; echo "<tr>"; for ($col=0; $col<$cols; ++$col) { echo "<td>-{$result->info["name"][$col]}-<br>-{$result->info["type"][$col]}-</td>"; } echo "</tr>\n"; for ($row=0; $row<$rows; ++$row){ echo "<tr>"; for ($col=0; $col<$cols; ++$col) { echo "<td>-{$result->data[$row][$col]}-</td>"; } echo "</tr>\n"; } echo "</table><p>\n"; echo "table dimension: {$result->rows} x id, parentid, description<br><table border=1>\n"; for ($row=0; $row<$rows; ++$row) { echo "<tr>"; echo "<td>-{$result->data[$row]["id"]}-</td>"; echo "<td>-{$result->data[$row]["parentid"]}-</td>"; echo "<td>-{$result->data[$row]["description"]}-</td>"; echo "</tr>\n"; } echo "</table><p>\n"; } dbx_close($link); ?>
|
Note |
Reportez-vous aussi à la documentation de la base de données que vous
utilisez.
|
Voir aussi
dbx_connect.
|