我有一个简单的分类广告网站......
分类广告被插入到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);
由于
答案 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风格等)这也是一个好主意。