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 のように null 値が無視されることはありません。

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 に答える