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