Wiki-Quellcode von Datenbank-Abfrage
Zeige letzte Bearbeiter
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{figure image="db_statement_de.png" width="400" clear="h1"}} | ||
| 2 | Nutzeroberfläche für Aktionen vom Typ //Datenbank-Abfrage//. | ||
| 3 | {{/figure}} | ||
| 4 | |||
| 5 | Aktionen vom Typ //Datenbank-Abfrage// ermöglicht es, eine SQL-Abfrage auszuführen. Dazu muss vorher eine Verbindung in Datenbankverwaltung angelegt worden sein. Innerhalb der Abfrage können Platzhalter verwendet werden, um etwa Formulardaten in die Abfrage einzufügen. Dabei werden sogenannte Prepared-Statements erzeugt, sodass SQL-Injection nicht möglich ist. | ||
| 6 | |||
| 7 | == Parameter == | ||
| 8 | |||
| 9 | === Details der Datenbank-Abfrage === | ||
| 10 | |||
| 11 | ; Konfigurierte DB-Abfrage nutzen? | ||
| 12 | : Wenn diese Option ausgewählt wird, kann eine im Backend vorkonfigurierte DB-Abfrage ausgewählt werden. Zusätzlichen werden Details zur Abfrage angezeigt. | ||
| 13 | ; Verbindung | ||
| 14 | : Datenbank-Verbindung, welche in der Verwaltung vor konfiguriert wurde. | ||
| 15 | ; SQL Anweisung | ||
| 16 | : Textfeld für die SQL Anweisung. | ||
| 17 | |||
| 18 | == Aktionsplatzhalter == | ||
| 19 | |||
| 20 | Aktionen vom Typ //Datenbank-Abfrage// stellen [[Aktionsplatzhalter>>Formcycle.UserInterface.Variables||anchor="Aktionsplatzhalter"]] bereit, welche in darauf folgenden Aktionen verwendet werden können. | ||
| 21 | |||
| 22 | === Standardplatzhalter === | ||
| 23 | |||
| 24 | ; [%$<Aktionsname>.SUCCESS%] | ||
| 25 | : Rückgabe ob Aktion erfolgreich ausgeführt wurde. Liefert Boolean (true/false) zurück. | ||
| 26 | ; [%$<Aktionsname>.RESULT%] | ||
| 27 | : Rückgabe aller von der Aktion bereitgestellten Ergebnisse in strukturierter Form. | ||
| 28 | |||
| 29 | ; [%$<Aktionsname>.ERROR_CODE%] | ||
| 30 | : Der geworfene Fehler-Code im Fehlerfall der Aktion. Leer wenn kein Fehler aufgetreten ist. | ||
| 31 | ; [%$<Aktionsname>.ERROR_MESSAGE%] | ||
| 32 | : Die geworfene Fehler-Nachricht im Fehlerfall der Aktion. Leer wenn kein Fehler aufgetreten ist. | ||
| 33 | |||
| 34 | === Aktionsspezifische Platzhalter === | ||
| 35 | |||
| 36 | ; [%$<Aktionsname>.RESULT.rows[i]['key']%] | ||
| 37 | : Ein JSON-Array mit den Ergebnissen des SQL-Statements. Jeder Eintrag im JSON-Array ist ein JSON-Objekt, wobei der Schlüssel dem Namen der Datenbankspalte entspricht. Der Index i beginnt mit 0. | ||
| 38 | ; [%$<Aktionsname>.RESULT.updateCount%] | ||
| 39 | : Für ein Update-Statement: die Anzahl der betroffenen Zeilen in der Datenbank. Ansonsten ist der Wert immer 0. | ||
| 40 | |||
| 41 | == Hinweis == | ||
| 42 | |||
| 43 | Das eingegebene Statement wird als //Prepared-Statement// ausgeführt, so dass keine sogenannte //SQL-Injection// moglich ist. Verwenden Sie daher auch keine Hochkommas. | ||
| 44 | |||
| 45 | (% style="color:#38761d" %)**Richtig** | ||
| 46 | |||
| 47 | {{code language="sql"}} | ||
| 48 | INSERT INTO test_tabelle (vorname, nachname) values ([%tfVorname%], [%tfName%]) | ||
| 49 | {{/code}} | ||
| 50 | |||
| 51 | (% style="color:#cc0000" %)**Falsch** | ||
| 52 | |||
| 53 | {{code language="sql"}} | ||
| 54 | INSERT INTO test_tabelle (vorname, nachname) values ('[%tfVorname%]', '[%tfName%]') | ||
| 55 | {{/code}} |