vtDbQuery
(Master ab 3.0.4)
Führt eine SQL-Datenbankabfrage aus.
Verwendung
<!--{{vtDbQuery: %Abfrage }}--> ... <!--{{vtEndDbQuery}}-->
- %Abfrage
Die SQL-Abfrage, die ausgeführt werden soll. Wenn ein Namen in Backticks eingeschlossen ist und mit einem Prozenzeichen beginnt, wird das Prozentzeichen vor dem Ausführen der Abfrage durch das aktuelle Tabellenpräfix ersetzt. Auf diese Weise lassen sich Abfragen so schreiben, dass sie in jeder Virthos-Umgebung, unabhängig vom festgelegten Präfix, funktionieren.
Hinweise
Bei SELECT- oder SHOW-Abfragen lassen sich die gefundenen Datensätze anschließend mittels vtDbLoop durchlaufen, und mit vtDbCountSelection kann man die Zahl der gefundenen Datensätze ausgeben.
Bei UPDATE-, INSERT- und DELETE-Abfragen kann man die Zahl der aktualisierten,
erstellten oder gelöschten Datensätze mit dem Platzhalter
vtDbAffectedRows ausgeben. Bei INSERT
-Abfragen lässt sich
außerdem die ID des zuletzt erstellten Datensatzes mit dem Platzhalter
vtDbInsertId ausgeben.
Tritt bei der Abfrage ein Fehler auf, lässt sich die Fehlermeldung mittels
Die vtEndDbQuery
-Anweisung ist nicht zwingend erforderlich, bei Abfragen mit
großen Ergebnismengen aber empfehlenswert, um den belegten Speicher wieder
freizugeben und die Übersichtlichkeit des Quellcodes zu erhöhen.
In älteren Virthos-Versionen (ab 2.0) stellt vtDbSelect eine
ähnliche Funktionalität zur Verfügung wie vtDbQuery
.
Beispiele
<!--{{vtDbQuery: SHOW TABLES }}-->
<!--{{vtDbQuery: DELETE FROM `%data_customers` WHERE 1 }}-->
Wenn als Tabellenpräfix vt2_
festgelegt ist, wird im zweiten Beispiel
folgende SQL-Abfrage zum Datenbankserver gesendet:
DELETE FROM `vt2_data_customers` WHERE 1