0

所以为了避免 SQL 注入,我决定开始使用 PHP PDO 函数来连接我的 MySQL 数据库。但是,当用户输入引号时,是否可以避免将 \ 放在桌子上?

这是我的代码:

$insert = $conn->prepare("INSERT INTO tests 
        (name, author, category, description, num_attempts, audience, date_uploaded, source, public) VALUES 
        (:testName, '$userId', '$category', :desc, '0', '$audience', '$date', 'Web', '0')");
        $insert->bindParam(':testName', $testName, PDO::PARAM_STR);
        $insert->bindParam(':desc', $desc, PDO::PARAM_STR);
        $insert->execute();

注意 testName,这是一个用户输入。每当有人加引号时,我不希望将 \ 放在数据库中。请帮忙。

4

1 回答 1

5

看起来您打开了魔术引号,这会导致添加斜杠。魔术引号是一个被破坏的安全概念,自 PHP 5.3 起已被弃用,因此对于面向未来的代码,请将魔术引号设置为关闭。

于 2013-06-22T21:26:18.083 回答