Führt den SQL-Befehl a auf der Datenbank aus, die der Alias b repräsentiert. Platzhalter der Form &Parameternummer im SQL-Befehl werden durch die Werte ab Parameter c ersetzt. Für die Syntax notwendige Zeichen wie Hochkommas bei Texten müssen im Statement selbst stehen. Liefert das Statement kein Ergebnis, gibt die Funktion false zurück. Ansonsten gibt sie true zurück.
WICHTIG: Neben der Schreibweise
&Parameternummerist auch die Schreibweise für Prepared Statements möglich, in der Form@Parameternummer:Parametertyp@. Bevorzugen Sie diese Schreibweise, denn sie verhindert sogenannte SQL-Injection-Angriffe. Innerhalb von Prepared Statements ersetzen Parameter ausschließlich einzelne Werte. SQL-Syntax wie Wertelisten fürIN, Tabellen- oder Spaltennamen, Operatoren, Sortierungen oder komplette SQL-Fragmente lässt sich nicht über Platzhalter übergeben.
Parameter
Parameter | Beschreibung |
|---|---|
a | Auszuführendes SQL-Statement. |
b | Datenbank-Alias. |
c | (optional) Parameter |
d | (optional) Parameter |
e | (optional) Parameter |
f | (optional) Parameter |
g | (optional) Parameter |
h | (optional) Parameter |
i | (optional) Parameter |
j | (optional) Parameter |
k | (optional) |
l | (optional) Falls |
Beispiele
Gegeben sei eine Tabelle zipcodes, die die Postleitzahlen von Deutschland enthält.
Parameter a | b | c | d | e…j | k | l | Ergebnis |
|---|---|---|---|---|---|---|---|
select * from zipcodes | testdb | true | |||||
select * from zipcodes where zipcode = &1 | testdb | 80336 | true | ||||
select * from zipcodes where zipcode = @1:i@ | testdb | 80336 | true | ||||
select * from zipcodes where city = '&2' | testdb | Munich | true | ||||
select * from zipcodes where city = @2:s@ | testdb | Munich | true | ||||
select * from zipcodes where zipcode = &1 and city = '&2' | testdb | 12345 | Munich | false | |||
select * from zipcodes where zipcode = &1 and city = &2 | testdb | 12345 | Munich | Fehler, da Textliterale in Hochkommas stehen müssen. |
Hinweise
Die Anfrage ist gegenüber der Datenbank automatisch auf eine Ergebniszeile beschränkt. Die Datenbank gibt also unabhängig von der Anzahl Zeilen in der Tabelle nur eine Zeile zurück. Eine
LIMIT-Anweisung im Statement ist daher nicht notwendig.Sollen im Anschluss die eigentlichen Werte weiterverwendet werden, rufen Sie diese besser direkt mit einer der Select-Funktionen ab. Prüfen Sie dann auf die Existenz eines gelesenen Wertes.