パラメータ化されたクエリは、基本的にすべての入力を抽象化するクエリです。これには、すべての入力を無害にする(つまり、有害な注入が不可能になる)ことや、事前に解析およびコンパイルされるため、繰り返し使用すると高速になるなど、いくつかの良い副作用があります。エンジンは、指定された入力を適用する方法を知っています。純粋なmysqlの例は次のとおりです。
PREPARE qry FROM "INSERT INTO tbl VALUES (?)";
これで、ステートメントがコンパイルおよびキャッシュされ、再コンパイルして解釈しなくても繰り返し実行できます。
SET @var = "some input";
EXECUTE qry USING @var;
SET @var = "some other input";
EXECUTE qry USING @var;
PHPで使用する場合、通常は次のようになります(短縮):
$stmt = prepare('INSERT INTO tbl VALUES(?)');
execute($stmt, array("some input"));
execute($stmt, array("some other input"));
execute($stmt, array("some more input"));