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

Siehe auch