Zend framework2 ZF2-选择并更改表达式

Zend framework2 ZF2-选择并更改表达式,zend-framework2,tablegateway,Zend Framework2,Tablegateway,在具有2.2.7的项目中,有如下代码: $select->where->expression('CXORDERNUMBER=“.”.$orderNumber.”,null) 在尝试更新2.4.9版本时,我遇到以下错误: *Zend\Db\Sql\Exception\RuntimeException 表达式中的替换数与参数数不匹配* 我不得不将其更改为以下内容,这对我来说也更为熟悉: $select->where(数组(“CXORDERNUMBER”=>$orderNumber)) 代码中有许多这

在具有2.2.7的项目中,有如下代码:

$select->where->expression('CXORDERNUMBER=“.”.$orderNumber.”,null)

在尝试更新2.4.9版本时,我遇到以下错误:

*Zend\Db\Sql\Exception\RuntimeException

表达式中的替换数与参数数不匹配*

我不得不将其更改为以下内容,这对我来说也更为熟悉:

$select->where(数组(“CXORDERNUMBER”=>$orderNumber))

代码中有许多这样的表达式。有时我不可能用上面的方式来改变它。有人能解释一下,为什么ZF的新版本会出现这种情况

谢谢

更新:

表达式的使用方式必须如下所示: $select->where->expression('CXORDERNUMBER=?',array($orderNumber))


在2.4.9中,始终有一个参数集,并且不会像在2.2.7中一样被忽略,该参数值为空值。检查后,您可以写入:

$where = new Where();
$where->equalTo('CXORDERNUMBER', $orderNumber);
$select->where($where);
别忘了

use Zend\Db\Sql\Where;
最好的