0

可能重复:
如何防止 PHP 中的 SQL 注入?

我想知道我的代码是否有像 SQLI 这样的 hack

function insertRow($table,$fields,$values)
    {
        if(count($fields) != count($values))
        {
            echo "fields and values must be the same count";
            return null;
        }
        $query = "INSERT INTO ".$table." SET ";
        foreach($fields as $key => $field)
        {
            $query = $query. "" . $field . " = '" . htmlspecialchars($values[$key], ENT_QUOTES) . "', ";
        }
        $query = substr($query,0,-2);

        if (!mysql_query($query, $this->con))
        {
            echo "Error : " . mysql_error($this->con)."<br />";
            return false;
        }
        return true;
    }

我使用 htmlspecialchars,我想知道它是否可以

编辑 :

$fields = array("a","b","c");
$values = array($_POST["a"],$_POST["b"],$_POST["c"]);
$a = $dbc->insertRow("tbl_synagoge",$fields,$values);
4

1 回答 1

3

而不是htmlspecialchars()使用mysql_real_escape_string().

这将使您的代码更加安全。

但是,您可能希望停用所有 mysql_* 函数,因为它们已被弃用。您可以从这里开始:MySQLi

于 2012-12-29T03:00:34.137 回答