Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Beispiele für parametrisierte Abfragen

Eine parametrisierte Abfrage ist im Wesentlichen eine Abfrage, die alle Eingaben abstrahiert. Dies hat mehrere gute Nebeneffekte, wie z. B. alle Eingaben harmlos zu machen (dh es sind keine schädlichen Injektionen möglich) und sie bei wiederholter Verwendung schneller zu machen, da sie vorparst und kompiliert wird, sodass die Engine weiß, wie sie die gegebene Eingabe anwenden soll. Ein Beispiel in reinem MySQL ist:

PREPARE qry FROM "INSERT INTO tbl VALUES (?)";

Die Anweisung ist jetzt kompiliert und zwischengespeichert und kann wiederholt ausgeführt werden, ohne sie neu kompilieren und interpretieren zu müssen:

SET @var = "some input";
EXECUTE qry USING @var;
SET @var = "some other input";
EXECUTE qry USING @var;

Wenn es in PHP verwendet wird, ist es normalerweise so (abgekürzt):

$stmt = prepare('INSERT INTO tbl VALUES(?)');
execute($stmt, array("some input"));
execute($stmt, array("some other input"));
execute($stmt, array("some more input"));