Uma consulta parametrizada é essencialmente uma consulta que abstrai toda a entrada. Isso tem vários efeitos colaterais bons, como tornar todas as entradas inofensivas (ou seja, não são possíveis injeções prejudiciais) e torná-las mais rápidas quando usadas repetidamente, já que são pré-analisadas e compiladas, para que o mecanismo saiba como aplicar a entrada fornecida. Um exemplo em mysql puro é:
PREPARE qry FROM "INSERT INTO tbl VALUES (?)";
A instrução agora é compilada e armazenada em cache e pode ser executada repetidamente sem a necessidade de recompilá-la e interpretá-la:
SET @var = "some input";
EXECUTE qry USING @var;
SET @var = "some other input";
EXECUTE qry USING @var;
Quando usado em PHP, geralmente é assim (abreviado):
$stmt = prepare('INSERT INTO tbl VALUES(?)');
execute($stmt, array("some input"));
execute($stmt, array("some other input"));
execute($stmt, array("some more input"));