2010-12-06 1 views
3

WHERE 절이있는 SELECT 개체가 있습니다.Zend Framework : Zend_Db_Select :: getPart()에서 반환 된 WHERE 절을 다시 사용합니다.

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

이 배열은 다른에 내가 그것으로

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

을 이렇게 심지어 넣을 수 없기 때문에 꽤 쓸모없는 것 같다

내가 getPart(Zend_Db_Select::WHERE)를 사용하여 WHERE을 반환 할 수 있습니다, 이것은 이런 식으로 뭔가를 반환 SELECT 개체. SELECT 개체에서 WHERE 문을보다 유용하게 표현할 수있는 방법이 있습니까?

감사

편집

내가 지금까지 함께 온 가장은

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

답변

1

귀하의 첫 번째 선택, $client->update(...) 일하는 것이, 경우 getParts가 생략 ' AND 'where 절의 두 번째 부분에서.

내가 당신의 유일한 선택하는 것입니다 확신 해요 :

  1. 이 두 번째 옵션을 사용하여 (아마 가장 안전한 방법 복잡한 조항은 위치에 따라) 반환 여기서 $을 통해
  2. 으로 반복 또는 -와 존재하는 주요한 'AND', 'OR'를 제거하십시오.
+1

+1 감사합니다. Darryl. 나는 누군가가 그렇게 말할 것을 두려워했습니다. 나는 이것에 대한 더 우아한 해결책이 없다고 믿을 수 없다. –

관련 문제