因为我的陈述就像
"SELECT * FROM `box` WHERE `thing` = '{$variable}'
我可以简单地用
清理它$variable = str_replace("'","\'",$variable);
"SELECT * FROM `box` WHERE `thing` = '{$variable}'
那会有用吗?我的主机不支持mysql转义,我没有使用mysqli。
答案 0 :(得分:16)
使用parametrized queries(PDO可能是您最好的选择)。
答案 1 :(得分:7)
我非常怀疑你的主持人不支持mysql_real_escape_string
功能。
$variable = mysql_real_escape_string($variable);
$sql = "SELECT * FROM `box` WHERE `thing` = '{$variable}'";
如果您确实没有安装MySQL,那么您可以根据您正在使用的RDBMS使用以下转义函数之一:
答案 2 :(得分:1)
如果是postgres,您可以使用pg_escape_string
。
答案 3 :(得分:0)
讨厌重复自己,但是,再一次尝试这一个:
PHP Intrusion Detection System
答案 4 :(得分:-8)
根据作为查询的有效数据类型的类,您通常可以使用:
function cleanVar($str){
$str = strip_tags(addslashes($str));
return $str;
}