Une requête paramétrée est essentiellement une requête qui fait abstraction de toutes les entrées. Cela a plusieurs bons effets secondaires, comme rendre toutes les entrées inoffensives (c'est-à-dire qu'aucune injection nocive n'est possible) et la rendre plus rapide lorsqu'elle est utilisée à plusieurs reprises, car elle est pré-parsée et compilée, afin que le moteur sache comment appliquer l'entrée donnée. Un exemple en mysql pur est :
PREPARE qry FROM "INSERT INTO tbl VALUES (?)";
L'instruction est maintenant compilée et mise en cache, et peut être exécutée à plusieurs reprises sans avoir besoin de la recompiler et de l'interpréter :
SET @var = "some input";
EXECUTE qry USING @var;
SET @var = "some other input";
EXECUTE qry USING @var;
Lorsqu'il est utilisé en PHP, il se présente généralement comme ceci (raccourci) :
$stmt = prepare('INSERT INTO tbl VALUES(?)');
execute($stmt, array("some input"));
execute($stmt, array("some other input"));
execute($stmt, array("some more input"));