select-statement a [[param &1 = c], d,e, f,g,h,i,j], default k,l,m,n dbAlias = b


Führt einen SQL-Select-Befehl a auf der Datenbank aus, die durch den Alias b repräsentiert wird. Im Statement hinterlegte Platzhalter der Form &Parameternummer werden durch die Werte ab Parameter c bis j ersetzt. Zeichen, die für eine gültige Syntax des Statements erforderlich sind (z. B. Hochkommas um Zeichenketten) müssen bereits im Statement enthalten sein. Die Menge an selektierten Ergebniszeilen wird automatisch auf 1 beschränkt.

Liefert die Datenbank eine Ergebniszeile zurück, ist der Rückgabewert der Funktion der Wert der ersten Spalte. Ansonsten wird k zurückgegeben.

Sind in der Ergebnismenge Spalten vom Typ Blob, wird über den Parameter l festgelegt, ob die Binärdaten Base64-kodiert in die Ergebnislisten geschrieben werden sollen oder nicht. Ist l true wird Base64-kodiert, ansonsten bleiben die Daten unverändert. Gibt es keine solchen Spalten in der Ergebnismenge, hat der Wert des Parameters keinen Effekt.

Wichtiger Hinweis: Neben der Schreibweise &Parameternummer ist auch die Schreibweise für "Prepared Statements" in der Form @Parameternummer:Parametertyp@ möglich. Diese verhindert sogenannte SQL Injection Attacks und ist daher zu bevorzugen.

Parameterbeschreibung


Parameter

Beschreibung

a

Auszuführendes SQL-Statement.

b

Der Datenbank-Alias.

c

(optional) Parameter &1 im Statement.

d

(optional) Parameter &2 im Statement.

e

(optional) Parameter &3 im Statement.

f

(optional) Parameter &4 im Statement.

g

(optional) Parameter &5 im Statement.

h

(optional) Parameter &6 im Statement.

i

(optional) Parameter &7 im Statement.

j

(optional) Parameter &8 im Statement.

k

(optional) Rückgabewert, wenn die Datenbank kein Ergebnis liefert.

l

(optional) true, wenn Daten aus einer Spalte vom Typ BLOB Base64-kodiert in die Ergebnislisten aufgenommen werden sollen. Default: false.

m

(optional) true für Nur-Lesen-Modus. Default: false.

n

(optional) Falls true, dann werden SQL-Fehler, die von der Datenbank gemeldet werden, ignoriert. Default: <leer> (== false).


Beispiele


Gegeben sei eine Tabelle zipcodes, die die Postleitzahlen von Deutschland enthalte (insgesamt imaginäre 20000 Einträge).


Parameter a

b

c

dj

k

l

m

n

Ergebnis

select zipcode from zipcodes

testdb



unbekannt




01067

select city from zipcodes where zipcode = &1

testdb

80336


unbekannt




München

select city from zipcodes where zipcode = &1

testdb

00000


unbekannt




unbekannt

select city from zipcodes where zipcode = @1:i@

testdb

80336


unbekannt




München

select city from zipcodes where zipcode = @1:i@

testdb

00000


unbekannt




unbekannt

select pin from atmdata where username = '&1' and passwd = '&2'

testdb

root

geheim

unbekannt




4711

select pin from atmdata where username = '&1' and passwd = '&2'

testdb

root

' or ''='

unbekannt




4711

select pin from atmdata where username = @1:s@ and passwd = @2:s@

testdb

root

' or ''='

unbekannt




unbekannt

select pin from atmdata where username = &1 and passwd = &2

testdb

root

geheim

unbekannt




Fehler, da Textliterale in Hochkommas stehen müssen.