PHP PDO 语句是自动转义的,还是只有准备好的语句?
例如,假设$username
和$password
是用户输入。下面的代码是安全的,还是容易被注入?
$dbh = new PDO("mysql:host=localhost;dbname=mydb", $my_mysql_username, $my_mysql_password);
$sth = $dbh->query("SELECT * FROM users WHERE username='$username' AND password='$password'");
$result = $sth->fetch();
if(!$result){
$dbh->exec("INSERT INTO users (username, password) VALUES ('$username', '$password')");
}
(以上代码纯属假设,仅供参考。)
如果它们没有自动转义,PDO 是否mysql_
在这种情况下对函数提供任何额外的保护?