2010-12-06 4 views
3

WHERE句を含むSELECTオブジェクトがあります。Zend Framework:Zend_Db_Select :: getPart()から返されたWHERE句を再利用

私はgetPart(Zend_Db_Select::WHERE)を使用してWHEREを返すことができ、これはこのような何かを返します。

array 
    0 => string "(clienttype = 'agent')" 
    1 => string "AND (nextpayment < (NOW() - INTERVAL 1 DAY))" 

この配列は、私はそれ

$client->update(array("paymentstatus" => "lapsed"), $where); 

、あるいは別のものにそれを置くと、これを行うことができないとして、かなり役に立たないようですSELECTオブジェクト。 SELECTオブジェクトからWHEREステートメントをより便利に表現する方法はありますか?

おかげ

EDIT

私は今のところ出ている最高の

$where = new Zend_Db_Expr(implode(" ", $select->getPart(Zend_Db_Select::WHERE))); 

答えて

1

あなたの最初の選択肢、$client->update(...)が働くだろう、場合getPartsは省略しています " AND句はwhere句の2番目の部分からです。

私はあなたの唯一の選択肢にあるかなり確信している:$どこ戻って

  • 反復 - または - (どのように複雑な句があるインクルードに応じて、おそらく最も安全な)あなたの2番目のオプションを使用し

    1. と存在する可能性がある先頭の 'AND'、 'OR'を削除します。
  • +1

    +1ありがとうございました。私は誰かがそれを言うのではないかと心配しました。私はこれにもっと洗練された解決策がないとは信じられません。 –

    関連する問題