0

在 2.2.7 的项目中有这样的代码:

$select->where->expression('CXORDERNUMBER = "' . $orderNumber . '"', null);

尝试为 2.4.9 更新此内容时,出现以下错误:

*Zend\Db\Sql\Exception\RuntimeException

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

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

$select->where(array("CXORDERNUMBER" => $orderNumber));

代码中有很多这样的表达式。有时我无法以上述方式更改它。有人可以解释一下,为什么在较新版本的 ZF 中会发生这种情况?

谢谢!

更新:

表达式必须像这样使用: $select->where->expression('CXORDERNUMBER = ?', array($orderNumber));

在 2.4.9 中,始终有一个参数集,并且不会像在 2.2.7 中那样被忽略,并且具有空值

4

1 回答 1

0

检查后,您可以编写:

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

不要忘记

use Zend\Db\Sql\Where;

最好的

于 2015-12-21T18:40:23.857 回答