过去几周我一直在学习 PHP 和 MySQL,而我现在才听说准备好的语句和 PDO/mysqli。我做了一些阅读,人们说这样的话:
$getFromDatabase = mysql_query("SELECT * FROM table WHERE userid='$id'");
while($row = mysql_fetch_assoc($getFromDatabase)){
stuff();
}
......不会再工作了。我在我的代码中经常使用类似的东西。我也在阅读很多关于准备好的语句如何更好地防止注入的内容。我已经彻底了解它是如何变得更好的,但是它是否更好,值得从 mysql_real_escape_string() 切换?是否需要切换到Mysqli或PDO?在什么情况下 mysql_real_escape_string() 可以在准备好的语句无法绕过的情况下被绕过?