我学会了以下方法来清理数据
function sanitize($data)
{
return mysql_real_escape_string( $data);
}
然后,对于不了解它的初学者来说,对mysql中某些扩展的弃用变得令人沮丧,但是正确地了解PHP是一种学习经验。建议使用 mysqli_real_escape_string ,因为这个函数需要2个参数,我有以下
function sanitize($data){
// 1. Create a database connection
$db = new mysqli('localhost','root','somepass','secured_login');
if($db->connect_errno){
$connect_error = 'Sorry, we are experiencing connection problems.';
die ($connect_error);
}
return htmlentities(strip_tags(mysqli_real_escape_string($db, $data)));
}
然而,我一直认为许多PHP程序员高度建议使用PDO方法
我为这么久的介绍道歉我的问题是......使用修改后的函数sanitize是否安全?使用 mysqli_real_escape_string 代替 mysql_real_escape_string ?
如果没有!!然后通过使用PDO我需要学习OOP PHP而不是程序。我希望我能正确地解决这个问题。混合编程方向(程序和OOP)是不受欢迎的。
长时间使用PDO的真正优势是什么?谢谢!
答案 0 :(得分:1)
恕我直言,你必须学习如何使用PDO驱动程序通过重新发明轮子来防止头痛。 使用像PDO这样的OOP驱动程序,你也可以通过扩展类覆盖一些方法并改变几行代码来做很酷的事情。 您还可以使用依赖注入的PDO派生对象。 您可以通过编辑PDO :: engine变量来更改数据库的类型。
另外,您可以轻松防止第一种类型的SQL ininctions