Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

As instruções PDO são escapadas automaticamente?


Apenas declarações preparadas fornecem escape automático, supondo que você não tenha alguma feiúra como aspas mágicas ativadas. E apenas os dados nos parâmetros são escapados, não qualquer coisa que já esteja na string SQL quando você prepara a instrução.

Se você quiser os benefícios do escape automático, precisará preparar uma declaração e alimentá-la com os dados separadamente.
$sth = $dbh->prepare("SELECT * FROM users WHERE username=? AND password=?");
$sth->execute(array($username, $password));

Caso contrário, você obtém pouca ou nenhuma proteção sobre mysqli_query e amigos. (Eu me recuso a mencionar mysql_query , porque nenhum programador PHP que se preze usa mais. Oh, espere .. droga. Bem, essa é a única menção que chega aqui.)