Skip to main content

Optionen

string
Die Verbindungszeichenkette zur Datenbank (z.B. mysql://user:pass@host:port/dbname).
string
erforderlich
Das SQL-Statement, das ausgeführt werden soll. Werte aus den Argumenten werden über die Platzhalter :1 bis :10 eingesetzt. Setzen Sie Platzhalter nicht in Anführungszeichen.

Platzhalter im SQL-Statement

Die Platzhalter :1 bis :10 verweisen auf die Argumente argument1 bis argument10. Maßgeblich ist dabei die Nummer, nicht die Reihenfolge im Statement. Die Werte werden als Parameter an die Datenbank übergeben und dort ausschließlich als Werte behandelt, nicht als Teil des Statements. Das verhindert SQL-Injection und macht ein eigenes Maskieren oder Quoten unnötig. Daraus ergeben sich drei Regeln:
  • Platzhalter stehen immer ohne Anführungszeichen im Statement: WHERE kunde = :1 ist korrekt, WHERE kunde = ':1' nicht.
  • Platzhalter stehen nur für Werte. Tabellen- und Spaltennamen müssen fest im Statement hinterlegt sein.
  • Zusätzliche Zeichen wie Wildcards werden an den Platzhalter angehängt, statt in ihn hineingeschrieben zu werden.
Das Statement wird nur mit den Platzhaltern ausgeführt, für die auch ein Argument gefüllt ist. Verwenden Sie deshalb genau die Nummern, für die Werte übergeben werden, und keine zusätzlichen Platzhalter für optionale Argumente, die leer bleiben können.

Suche mit LIKE

Die Prozentzeichen gehören als eigenständiger Text in das Statement und werden mit dem Platzhalter verbunden:
Nicht verwendbar ist WHERE kunde LIKE '%:1%'.

Datums- und Zahlenwerte

Argumente werden immer als Text übergeben. Verwenden Sie für Datumswerte das Format yyyy-mm-dd:
Fragen Sie einen Zeitraum mit >= für den Beginn und < für das Ende ab. Bei Spalten mit Uhrzeit fehlen sonst die Einträge des letzten Tages. In PostgreSQL können Sie die Umwandlung mit :2::date ausdrücklich im Statement vornehmen, in MySQL mit CAST(:2 AS DATE).

Argumente

string
erforderlich
Wert für den ersten Parameter im SQL-Statement.
string
Wert für den zweiten Parameter im SQL-Statement.
string
Wert für den dritten Parameter im SQL-Statement.
string
Wert für den vierten Parameter im SQL-Statement.
string
Wert für den fünften Parameter im SQL-Statement.
string
Wert für den sechsten Parameter im SQL-Statement.
string
Wert für den siebten Parameter im SQL-Statement.
string
Wert für den achten Parameter im SQL-Statement.
string
Wert für den neunten Parameter im SQL-Statement.
string
Wert für den zehnten Parameter im SQL-Statement.

Beispiel

Die folgende Abfrage sucht Verträge eines Kunden, deren Laufzeit in einem bestimmten Zeitraum endet. Der Kundenname wird als Teilbegriff gesucht, der Zeitraum über zwei Datumswerte eingegrenzt. Option query:
Beschreibung der Argumente:

Fehlerbehebung

Prüfen Sie, ob die Platzhalter in Anführungszeichen stehen. ':1' wird als fester Text ausgeführt und nicht durch das Argument ersetzt. Schreiben Sie stattdessen :1 und verbinden Sie Wildcards mit CONCAT.
Es werden nur die Platzhalter ersetzt, für die ein Argument gefüllt ist. Verwenden Sie im Statement ausschließlich Nummern, für die auch Werte übergeben werden.
Übergeben Sie Datumswerte im Format yyyy-mm-dd. Bei Spalten mit Uhrzeit grenzen Sie den Zeitraum mit >= und < ein, damit die Einträge des letzten Tages enthalten sind.