Php 使用PDO quote()时是否可以进行SQL注入?

Php 使用PDO quote()时是否可以进行SQL注入?,php,mysql,pdo,sql-injection,Php,Mysql,Pdo,Sql Injection,我有以下代码(它的简单版本): 有没有办法克服quote()函数并将SQL注入查询?quote()是否100%安全 多谢各位 PDO::quote()在输入字符串周围加引号(如果需要),并对基础驱动程序使用适当的引号样式对输入字符串中的特殊字符进行转义 因此,它似乎可以防止SQL注入。 尽管如此,我们可以从PHP手册中看到,准备好的语句保证SQL注入保护: 如果使用此函数生成SQL语句,强烈建议您使用PDO::prepare()来准备带有绑定参数的SQL语句,而不是使用PDO::quote()将

我有以下代码(它的简单版本):

有没有办法克服quote()函数并将SQL注入查询?quote()是否100%安全

多谢各位

PDO::quote()在输入字符串周围加引号(如果需要),并对基础驱动程序使用适当的引号样式对输入字符串中的特殊字符进行转义

因此,它似乎可以防止SQL注入。 尽管如此,我们可以从PHP手册中看到,准备好的语句保证SQL注入保护:

如果使用此函数生成SQL语句,强烈建议您使用PDO::prepare()来准备带有绑定参数的SQL语句,而不是使用PDO::quote()将用户输入插入SQL语句。带有绑定参数的预处理语句不仅更便于移植,更方便,不受SQL注入的影响,而且通常比插值查询执行得更快,因为服务器端和客户端都可以缓存已编译的查询形式


你可以在chris85上阅读更多关于它的信息,对不起,我编辑了标题和标签。我有点累了这就是重点。更好的方法是使用参数化查询:
对(?在布尔模式下)
->quote()
添加单引号本身。
$query = "SELECT *
FROM text
WHERE MATCH (text) AGAINST ('".$pdo->quote($_GET["q"])."' IN BOOLEAN MODE);";