1
function escape($value){
    $magic_quotes_active = get_magic_quotes_gpc();
    $new_enough_php = function_exists("mysql_real_escape_string");
      if ($new_enough_php) {
        if ($magic_quotes_active) {
            $value = stripslashes($value);
            $value = mysql_real_escape_string($value);
        }
        elseif (!$magic_quotes_active) {
            $value = addslashes($value);
        }
        return $value;
    }
}

很长一段时间我一直在使用上面的函数来转义字符串?现在,我想问我是否需要使用该函数(我发现通过互联网转义适用于大多数 PHP 版本的字符串)?或者它使事情变得不必要地复杂?

4

2 回答 2

5

不,事实上,你应该不惜一切代价避免使用这些函数!您应该研究的是使用准备好的语句。
检查任何功能的文档页面mysql_*,并注意红色警告:扩展程序已开始弃用过程,而不是PDO建议mysqli_*

为避免注入,您应该使用准备好的语句...阅读有关此事的几篇文章,并了解PDOmysqli_*. 那就是,恐怕是唯一的出路……

于 2012-10-28T12:20:56.050 回答
0

你不需要这样的功能。通常使用addslashes(...). 在特殊情况下,请参阅文档,如推荐的 @Elias Van Ootegem

于 2012-10-28T12:25:12.353 回答