Function.sesam-query

Aus PHP-Wiki

Wechseln zu: Navigation, Suche
Unfallversicherung und kfz-versicherungAutoversicherung . Kleiderschrank Gondola buche von Taube

sesam_query

(PHP 3 CVS only)

sesam_query -- Durchführen einer SESAM-SQL-Abfrage und aufbereiten der Ergebnisse

Beschreibung

string sesam_query ( string query [, bool scrollable])
</BR >

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 function.sesam-fetch-row oder function.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 function.sesam-seek-row oder bei jedem Lesen einer Zeile mit function.sesam-fetch-row.

Für "immediate" Befehle wird die Anzahl der betroffenen Zeilen für Abfragen von der Funktion function.sesam-affected-rows gesichert.

Siehe auch: function.sesam-fetch-row und function.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);
?>

Persönliche Werkzeuge