Mysql
 sql >> Database >  >> RDS >> Mysql

Esempi di query parametrizzate

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"));