Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Hallo zusammen,
ich kenne mich mit dem Thema überhaupt nicht aus. Welche Vor- und Nachteile haben dynamische SQL-Queries?
Gruß und Dank!
Oder wenn Teile des Querys aus einer Tabelle kommen, z.B. Spaltennamen.
Wird dadurch nicht das relationale Paradigma verletzt? Welche Vorteile sollen sich daraus ergeben? Und wird dadurch nicht die Wartbarkeit/Erweiterbarkeit behindert? Und wird nebenbei nicht auch noch der Optimizer ausgehebelt?Oder wenn Teile des Querys aus einer Tabelle kommen, z.B. Spaltennamen.
Aber gehen wir von folgendem Beispiel aus. In einer Datenbank mit ca. 20 Tabellen werden Änderungen durchgeführt. Es wird in jede Datenbank eine zusätzliche Spalte hinterlegt, eine andere herausgelöscht. Jetzt müssten statische Queries erst entsprechend abgeändert werden, damit die Datenbank wieder korrekt angesprochen werden kann.
Ist die Anpassung der Queries in diesem Fall bei dynamischen Queries ebenfalls notwendig?
Gruß
Sind dynamische Queries leichter zu hacken als statische?
Gruß
Wie steht es um die Sicherheit? Sind dynamische Queries leichter zu hacken als statische?
Ich glaube nicht das prepared Statements dynamische Abfragen ausführen können.
test=*# select * from foo;
i
---
1
(1 row)
test=*#
test=*#
test=*# create or replace function f_foo(text) returns int as $$declare r int; begin execute 'select i from foo where ' || $1 || ' = 1' into r; return r; end; $$language plpgsql;
CREATE FUNCTION
test=*# prepare p_foo (text) as select * from f_foo($1);
PREPARE
test=*# execute p_foo('i');
f_foo
-------
1
(1 row)
test=*# execute p_foo('a');
ERROR: column "a" does not exist at character 25
QUERY: select i from foo where a = 1
CONTEXT: PL/pgSQL function f_foo(text) line 1 at EXECUTE statement
STATEMENT: execute p_foo('a');
ERROR: column "a" does not exist
LINE 1: select i from foo where a = 1
^
QUERY: select i from foo where a = 1
CONTEXT: PL/pgSQL function f_foo(text) line 1 at EXECUTE statement
Ich glaube nicht das prepared Statements dynamische Abfragen ausführen können. Nur anders herum.