Php 使用Zend Framework清理SQL输入?

Php 使用Zend Framework清理SQL输入?,php,zend-framework,Php,Zend Framework,我知道Quote和QuoteInto。这两种方法都不能帮助我解决以下问题。我需要清理以下SQL的输入: select * from log where message like '%bla%' QuoteInto和Quote将添加不适用于%(通配符)的引号。如何清理此输入,以获得如上所述的“安全”SQL语句?将%字符直接添加到变量中,并引用整个值。 看起来是这样的: $value = 'bla'; $db->quoteInto("SELECT * FROM log WHERE mes

我知道Quote和QuoteInto。这两种方法都不能帮助我解决以下问题。我需要清理以下SQL的输入:

select * from log where message like '%bla%'

QuoteInto和Quote将添加不适用于%(通配符)的引号。如何清理此输入,以获得如上所述的“安全”SQL语句?

%
字符直接添加到变量中,并引用整个值。
看起来是这样的:

 $value = 'bla';
 $db->quoteInto("SELECT * FROM log WHERE message LIKE ?", "%{$value}%");
与此相比,这会给您带来您描述的糟糕结果:

 $value = 'bla';
 $db->quoteInto("SELECT * FROM log WHERE message LIKE '%?%'", $value);

%
字符直接附加到变量中,并引用整个值。
看起来是这样的:

 $value = 'bla';
 $db->quoteInto("SELECT * FROM log WHERE message LIKE ?", "%{$value}%");
与此相比,这会给您带来您描述的糟糕结果:

 $value = 'bla';
 $db->quoteInto("SELECT * FROM log WHERE message LIKE '%?%'", $value);