(PHP 3 CVS only)
sesam_query -- Durchführen einer SESAM-SQL-Abfrage und aufbereiten der Ergebnisse
Description
string sesam_query
(string query [, bool
scrollable])
Rückgabewerte: ein SESAM "result identifier" oder FALSE
im Fehlerfall.
Von anderen Funktionen wird "result_id" für Abfrage-Ergebnisse verwendet.
sesam_query() schickt eine Abfrage an die aktuelle
Datenbank auf dem Server. Sie kann sowohl "immediate" SQL-Anweisungen
als auch "select type" Abfragen ausführen. Bei der Ausführung einer
"immediate" Anweisung ist kein Cursor aktiv und bei jedem folgenden
sesam_fetch_row() oder sesam_fetch_result() call will return an empty
Aufruf wird ein leeres Ergebnis (zero columns, indicating end-of-result)
zurückgeliefert.
Für "select type" Anweisungen wird ein Ergebnis-Deskriptor und ein Cursor
(scrollable oder sequential, abhängig vom optionalen
bool scrollable-Parameter) zugewiesen.
Wenn scrollable nicht angegeben wird, ist der
Cursor sequentiell.
Bei der Verwendung von "scrollable" Cursors kann der Cursor
im Ausgabesatz beliebig positioniert werden. Für jede "scrollable"
Abfrage gibt es globale Standardwerte für den "scrolling"-Typ
(Initial-Wert: SESAM_SEEK_NEXT) und den
scrolling offset, der entweder einmal durch
sesam_seek_row() oder bei jedem Lesen
einer Zeile mit sesam_fetch_row().
Für "immediate" Befehle wird die Anzahl der betroffenen Zeilen für Abfragen
von der Funktion sesam_affected_rows() gesichert.
Siehe auch: sesam_fetch_row() und
sesam_fetch_result().
Beispiel 1.
Zeige alle Zeilen der Tabelle "Telefon" als HTML-Tabelle
<?php
if (!sesam_connect("phonedb", "demo", "otto"))
die("cannot connect");
$result = sesam_query("select * from phone");
if (!$result) {
$err = sesam_diagnostic();
die($err["errmsg"]);
}
echo "<TABLE BORDER>\n";
// Add title header with column names above the result:
if ($cols = sesam_field_array($result)) {
echo " <TR><TH COLSPAN=".$cols["count"].">Result:</TH></TR>\n";
echo " <TR>\n";
for ($col = 0; $col < $cols["count"]; ++$col) {
$colattr = $cols[$col];
/* Span the table head over SESAM's "Multiple Fields": */
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 {
// Fetch the result in chunks of 100 rows max.
$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"]); // while there may be more data
echo "</TABLE>\n";
// free result id
sesam_free_result($result);
?>
|
|