我通过 a 运行所有整数,(int)Integer
以使它们可以安全地用于我的查询字符串中。
我还通过这个函数代码运行我的字符串:-
if(!get_magic_quotes_gpc()) {
$string = mysql_real_escape_string($string);
}
$pattern = array("\\'", "\\\"", "\\\\", "\\0");
$replace = array("", "", "", "");
if(preg_match("/[\\\\'\"\\0]/", str_replace($pattern, $replace, $string))) $string = addslashes($string);
$cleanedString = str_replace('%','',$string);
我显然返回了 $cleanedString 变量。现在我替换 % 字符,因为它是 mySQL 的通配符,如果用户插入它们,它可能会减慢我的查询(或使它们返回不正确的数据)。我应该关注 mySQL 的任何其他特殊字符吗?
其次,在 ? 之后的搜索和替换有什么错误或多余的mysql_real_escape_string
吗?我刚开始时从一个网站上得到它,并且(如果我没记错的话)它说除了转义字符串之外,您还必须使用此搜索/替换。看起来它正在尝试删除任何以前转义的注入字符?