Zend framework 如何在Zend_Select中使用IN函数

Zend framework 如何在Zend_Select中使用IN函数,zend-framework,zend-db,zend-framework3,Zend Framework,Zend Db,Zend Framework3,我将不同的字符串值从一个表单中分离出来 在代码中,我将其转换为如下所示: $kritkeyword='test,abc,xyz' 现在我想在IN函数中使用变量。在原始sql中,ist将是: where keyword IN ('test', 'abc', 'xyz') 在我的代码中,我尝试执行以下操作: $select->where('keyword IN (?)', $kritkeyword); 我还尝试: $select->where(['keyword IN ?' =>

我将不同的字符串值从一个表单中分离出来

在代码中,我将其转换为如下所示:

$kritkeyword='test,abc,xyz'

现在我想在IN函数中使用变量。在原始sql中,ist将是:

where keyword IN ('test', 'abc', 'xyz')
在我的代码中,我尝试执行以下操作:

$select->where('keyword IN (?)', $kritkeyword);
我还尝试:

$select->where(['keyword IN ?' =>$kritkeyword]);

到目前为止,我对如何编写它有不同的想法,但我总是会遇到sql错误。那么如何正确执行此操作呢?

您必须使用Zend\Db\Sql\Where。如果
$kitkeyword
是数组:

$condition = new Zend\Db\Sql\Where();
$condition->in('keyword', $kritkeyword);
$select->where($condition);

您还可以在('keyword',$kritkeyword)中选择$select->where->in;正如zend随后将在幕后创建一个zend\Db\Sql\Where对象,该对象与Alain Pomirol建议的对象相同