Zapytanie parametryczne jest zasadniczo zapytaniem, które abstrahuje od wszystkich danych wejściowych. Ma to kilka dobrych skutków ubocznych, takich jak uczynienie wszystkich danych wejściowych nieszkodliwymi (tj. żadne szkodliwe wstrzyknięcia nie są możliwe) i przyspieszenie, gdy są używane wielokrotnie, ponieważ są one wstępnie analizowane i kompilowane, więc silnik wie, jak zastosować dane wejściowe. Przykład w czystym mysql to:
PREPARE qry FROM "INSERT INTO tbl VALUES (?)";
Instrukcja jest teraz kompilowana i buforowana i może być wykonywana wielokrotnie bez konieczności ponownej kompilacji i interpretacji:
SET @var = "some input";
EXECUTE qry USING @var;
SET @var = "some other input";
EXECUTE qry USING @var;
W przypadku użycia w PHP zwykle wygląda to tak (w skrócie):
$stmt = prepare('INSERT INTO tbl VALUES(?)');
execute($stmt, array("some input"));
execute($stmt, array("some other input"));
execute($stmt, array("some more input"));