我无法弄清楚如何在保持字符串含义的同时清理字符串以进行安全查询。 给定表中某些值具有单引号或其他可逃避字符的表。我如何使用real_escape_string并仍然选择这些值?
MY_TABLE
Col1 Col2
-----------------
1 value's1
2 value's2
value's1来自url所以我必须用mysqli :: real_escape_string清理它 这意味着我的查询看起来像这样
SELECT Col1,Col2 FROM my_table WHERE Col2 = 'value\'s1'
当然因为这个原因我没有得到任何结果。
处理这个问题的各种策略是什么?
注意:刚刚phpinfo()和magic_quotes_gpc'关闭'。 我是否需要清理这个值我不知道有人可以在php只允许一次查询时如何进行SQL注入?我只是过于谨慎吗?
答案 0 :(得分:1)
if(get_magic_quotes_gpc())
{
$string = stripslashes($string);
$string = mysqli_real_escape_string($string);
}
else
{
$string = mysqli_real_escape_string($string);
}
你可能想要从这个
中创建一个函数