2010-11-29 113 views
1

由于我的陈述一样防止SQL注入与PHP

"SELECT * FROM `box` WHERE `thing` = '{$variable}' 

我能清理与单纯

$variable = str_replace("'","\'",$variable); 
"SELECT * FROM `box` WHERE `thing` = '{$variable}' 

将这项工作?我的主机不支持mysql转义,我不使用mysqli。

+0

有你为什么不使用mysqli的具体原因是什么? – GolezTrol 2010-11-29 23:56:08

+0

这是确定\t静态函数干净($ x)的 \t { \t \t $ X = str_replace函数( '\' '' '”,用htmlspecialchars($ x)的); \t \t回$ X; \t} – Macmee 2010-11-29 23:57:57

+0

转到PDO - http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons - http://stackoverflow.com/questions/770782/moving - 从MySQL的到库MySQLi-或-PDO – 2010-11-30 00:48:13

回答

-8

根据什么类作为查询有效的数据类型,通常可以逃脱:

function cleanVar($str){ 
    $str = strip_tags(addslashes($str)); 
    return $str; 
} 
0

如果是Postgres的你可以使用pg_escape_string