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

Le istruzioni PDO vengono automaticamente salvate?

Solo le dichiarazioni preparate forniscono l'escape automatico, supponendo che tu non abbia qualche bruttezza come le citazioni magiche abilitate. E solo i dati nei parametri vengono sottoposti a escape, non tutto ciò che è già nella stringa SQL quando prepari l'istruzione.

Se desideri i vantaggi dell'escape automatico, dovrai preparare una dichiarazione e fornirgli i dati separatamente.

$sth = $dbh->prepare("SELECT * FROM users WHERE username=? AND password=?");
$sth->execute(array($username, $password));

Altrimenti, hai poca o nessuna protezione su mysqli_query e amici. (Mi rifiuto persino di menzionare mysql_query , perché nessun programmatore PHP che si rispetti lo usa più. Oh, aspetta... dannazione. Bene, questa è l'unica menzione che arriva qui.)