【问题标题】:ZF2 - Select with expression changesZF2 - 选择表达式更改
【发布时间】:2015-12-21 13:28:45
【问题描述】:

在 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 中那样被忽略为空值

【问题讨论】:

    标签: zend-framework2 tablegateway


    【解决方案1】:

    检查后可以写:

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

    别忘了

    use Zend\Db\Sql\Where;
    

    最好的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-18
      • 2015-04-29
      相关资源
      最近更新 更多