Wiki-Quellcode von Datenbank-Abfrage


Zeige letzte Bearbeiter
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}}