我知道Quote和QuoteInto。这些都不能帮助我解决以下问题。我需要清理以下SQL的输入:
select * from log where message like '%bla%'
QuoteInto和Quote将添加不适用于%(通配符)的引号。如何清理此输入,以便最终得到如上所述的“安全”SQL语句?
答案 0 :(得分:3)
将%
个字符直接附加到您的变量,并引用整个值
这看起来像这样:
$value = 'bla';
$db->quoteInto("SELECT * FROM log WHERE message LIKE ?", "%{$value}%");
与此相比,这会给你带来不好的结果:
$value = 'bla';
$db->quoteInto("SELECT * FROM log WHERE message LIKE '%?%'", $value);