Una query parametrizzata è essenzialmente una query che astrae tutto l'input. Questo ha diversi buoni effetti collaterali, come rendere innocuo tutto l'input (cioè non sono possibili iniezioni dannose) e renderlo più veloce se usato ripetutamente, poiché è pre-analizzato e compilato, quindi il motore sa come applicare l'input fornito. Un esempio in puro MySQL è:
PREPARE qry FROM "INSERT INTO tbl VALUES (?)";
L'istruzione è ora compilata e memorizzata nella cache e può essere eseguita ripetutamente senza bisogno di ricompilarla e interpretarla:
SET @var = "some input";
EXECUTE qry USING @var;
SET @var = "some other input";
EXECUTE qry USING @var;
Quando viene utilizzato in PHP, di solito è così (abbreviato):
$stmt = prepare('INSERT INTO tbl VALUES(?)');
execute($stmt, array("some input"));
execute($stmt, array("some other input"));
execute($stmt, array("some more input"));