如何在不使用PDO或预处理语句的情况下保护我的PHP查询免受SQL注入?

时间:2013-07-02 17:18:31

标签: php sql sql-injection

我希望在没有pdo或准备语句的情况下保护我的sql查询 这个功能可以吗?

function sql_escape($string)
{
    $string =   iconv(mb_detect_encoding($string),'UTF-8//IGNORE',$string);
    $string =   addslashes($string);
    $string =   preg_replace('/[\x00-\x1F\x80-\xFF\0xB4\0x60\0x96\0x97\0x95\0x94\0x93\0x92\0x91\0x84\0x82\0x3B\0x8A]/', '', $string);
    $string =   addslashes($string);
    return $string;
}

2 个答案:

答案 0 :(得分:4)

不,使用提供的转义功能。对于mysqli,这是mysqli_real_escape_string

不要重新发明轮子,特别是如果它是一个非常复杂的轮子,你不确定它是否适用于所有条件。

答案 1 :(得分:-1)

像许多PHP人一样,你很容易逃避注入保护。所以,有一天你的网站会被黑客入侵,你会来这里准备好学习一些有用的东西。