当用户使用PHP PDO和MySQL插入带引号的字符串时,如何避免斜杠?

Oma*_*ani 0 php mysql pdo

因此,为了避免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();
Run Code Online (Sandbox Code Playgroud)

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

Jan*_*tor 5

看起来你打开了魔术引号,这会导致添加斜杠.魔术引号是一个破坏的安全概念,自PHP 5.3起就被弃用,因此对于面向未来的代码集魔术引用关闭.