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版本的字符串)?或者它的制作过程不必要很复杂?
答案 0 :(得分:5)
不,你应该不惜一切代价避免使用这些功能!你应该研究的是使用准备好的陈述。
检查任何mysql_*
功能的doc pages,并注意红色警告:扩展程序已开始弃用过程,而不是PDO
或mysqli_*
建议。
为避免注射,准备好的陈述是你应该使用的......阅读一些关于此事的文章,并研究PDO
和mysqli_*
的优点。那就是,我害怕前进的唯一途径......
答案 1 :(得分:0)
您不需要此类功能。通常情况下,使用addslashes(...)
就足够了。在特殊情况下,请参阅文档,例如@Elias Van Ootegem推荐