如何在Zend Framework中逃避复杂的SQL?

Ita*_*vka 11 php zend-framework zend-db-table

我有以下sql(简化真正的问题):

SELECT *
FROM t
WHERE myname LIKE '%{$input}%';
Run Code Online (Sandbox Code Playgroud)

如何逃避$输入?
我不能使用quoteInto(除非我错过了什么).

$sql=$DB->quoteInto("SELECT *
                     FROM t
                     WHERE myname LIKE '%?%'",$input);
Run Code Online (Sandbox Code Playgroud)

会给我的

SELECT *
FROM t
WHERE myname LIKE '%'my input'%';
Run Code Online (Sandbox Code Playgroud)

$sql=$DB->quoteInto("SELECT *
                     FROM t
                     WHERE myname LIKE ?",'%'.$input.'%');
Run Code Online (Sandbox Code Playgroud)

会给我一些信息:

SELECT *
FROM t
WHERE myname LIKE '\%my input\%';
Run Code Online (Sandbox Code Playgroud)

Ake*_*eem 16

最后一个选项对我来说很好,我没有经历过逃避'%'.所以$db->quote('%'.$_GET['query'].'%')输出%queryvalue%

  • FWIW,它输出'%queryvalue%',包括单引号. (4认同)