sesam_query

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

Beschreibung

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)

 
;

 
?