我是否需要在PHP中使用以下函数进行字符串转义?

时间:2012-10-28 12:11:47

标签: php string escaping

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版本的字符串)?或者它的制作过程不必要很复杂?

2 个答案:

答案 0 :(得分:5)

不,你应该不惜一切代价避免使用这些功能!你应该研究的是使用准备好的陈述。
检查任何mysql_*功能的doc pages,并注意红色警告:扩展程序已开始弃用过程,而不是PDOmysqli_*建议。

为避免注射,准备好的陈述是你应该使用的......阅读一些关于此事的文章,并研究PDOmysqli_*的优点。那就是,我害怕前进的唯一途径......

答案 1 :(得分:0)

您不需要此类功能。通常情况下,使用addslashes(...)就足够了。在特殊情况下,请参阅文档,例如@Elias Van Ootegem推荐