sesam_query
(PHP 3 CVS only)
sesam_query -- Exécute une requête SESAM
Description
string
sesam_query ( string query [, bool scrollable] )
sesam_query() retourne un identifiant de résultat
SESAM en cas de succès, ou FALSE en cas d'erreur.
L'identifiant de résultat est utilisé par d'autres fonctions
SESAM pour lire les valeurs.
sesam_query() envoie une requête à la base
active. Elle peut exécuter aussi bien une requête immédiate
(DELETE, UPDATE ou INSERT), ou une requête de selection.
Si une requête immédiate est exécutée, aucun curseur n'est
alloué, et il ne sera pas possible d'utiliser les fonctions
sesam_fetch_row() ou
sesam_fetch_result(). Pour les requêtes de
selection, un descripteur de résultat et un curseur
(scrollable ou séquentiel, suivant le paramètre optionnel
scrollable passé) sera alloué.
Si scrollable est omis, le curseur sera
séquentiel.
Lorsque vous utilisez les curseurs à défilement, le curseur
peut être positionné librement dans le résultat. Pour chaque
requête à défilement, il existe des valeurs globales de
types de défilement (initialisée à :SESAM_SEEK_NEXT)
et la position peut être fixée une seule fois par
sesam_seek_row() ou bien à chaque appel,
avec la fonction sesam_fetch_row().
Pour les requêtes immédiates, le nombre de lignes affectées est
sauvé, et est accessible par la fonction sesam_affected_rows().
Exemple 1.
Liste toutes les lignes de table "phone" sous forme de table HTML
<?php if (!sesam_connect("phonedb", "demo", "toto")) { die("cannot connect"); } $result = sesam_query("select * from phone"); if (!$result) { $err = sesam_diagnostic(); die ($err["errmsg"]); } echo "<table border=\"1\">\n"; // Ajoute l'en-tête de titre comme nom de colonne if ($cols = sesam_field_array($result)) { echo "<tr><th colspan=\"".$cols["count"]."\">Résultat:</th></tr>\n"; echo "<tr>\n"; for ($col = 0; $col < $cols["count"]; ++$col) { $colattr = $cols[$col]; /* étend les en-têtes de la table au-dessus des champs multiples */ if ($colattr["count"] > 1) { echo "<th colspan=\"".$colattr["count"]."\">".$colattr["name"]. "(1..".$colattr["count"].")</th>\n"; $col += $colattr["count"] - 1; } else { echo "<th>" . $colattr["name"] . "</th>\n"; } } echo "</tr>\n"; }
do { // Lit les résultats par bloc de 100 $ok = sesam_fetch_result($result,100); for ($row=0; $row < $ok["rows"]; ++$row) { echo "<tr>\n"; for ($col = 0; $col < $ok["cols"]; ++$col) { if (isset($ok[$col][$row])) { echo "<td>" . $ok[$col][$row] . "</td>\n"; } else { echo "<td>-empty-</td>\n"; } } echo "</tr>\n"; } } while ($ok["truncated"]); // tant qu'il a y encore des données
echo "</table>\n"; // libère les ressources sesam_free_result($result); ?>
|
|
Voir aussi :
sesam_fetch_row() et
sesam_fetch_result().