在PDO :: Prepare页面上,它指出,
"并且通过消除手动引用参数的需要,有助于防止SQL注入攻击"
知道这一点,有没有像mysql_real_escape_string()这样的PHP函数来处理PDO的转义?或者PDO是否会为我解决所有问题?
编辑
我现在意识到我问了一个错误的问题.我的问题确实是,"PDO为我做了什么?" 我现在用这些答案意识到它实际上只是消除了逃避引号的需要.但我仍然需要对传递给execute函数的值执行任何其他PHP清理调用.比如htmlentities(),strip_tags()等...
如果我使用MySQLi准备好的语句如下:
$stmt = $con1->prepare("UPDATE Login SET Session='LoggedOut' where Session=?");
$stmt->bind_param('s',$Session);
$stmt->execute();
$stmt->close();
Run Code Online (Sandbox Code Playgroud)
我还需要逃避我的变量,例如$Session用mysqli_real_escape_string();象下面这样:
$Session = mysqli_real_escape_string($con1, $_COOKIE['Session']);
$stmt = $con1->prepare("UPDATE Login SET Session='LoggedOut' where Session=?");
$stmt->bind_param('s',$Session);
$stmt->execute();
$stmt->close();
Run Code Online (Sandbox Code Playgroud)