我应该使用PDO来清理我的Sql查询还是“mysql_real_escape_string”?

时间:2010-11-07 23:53:13

标签: php sql mysql html security

我有一个简单的分类广告网站......

分类广告被插入到MySql表格中,我用来清理用户输入的唯一内容是mysql_real_escape_string

这够了吗?

PDO是最佳的幕外方式,但实际上只使用mysql_real_escape_string和PDO之间的区别就是这个问题:

   SELECT * FROM table_name WHERE table_name.classified = '$classified';

OR

   INSERT INTO table_name (input1, input2) VALUES ('$input1', $input2);

由于

2 个答案:

答案 0 :(得分:3)

上一个问题中有一些非常全面的信息:Why is PDO better for escaping MySQL queries/querystrings than mysql_real_escape_string?

基本上,mysql_real_escape_string()可以完成工作,除非您想要返工(并可能简化)所有数据库交互。

答案 1 :(得分:2)

我认为mysql_real_escape_string足以存储在数据库中并防止任何sql注入攻击。但是其他验证是一个好主意,只是为了让您的数据集更加规则并且不太容易包含垃圾。

用于呈现任何这些数据,过滤(ala Drupal风格等)这也是一个好主意。