2013-01-25 50 views
3

我需要爲where子句附加多個參數。有沒有什麼辦法可以實現使用Propel。它給我,where子句中的多個參數

Criteria:(Error: Could not build SQL for expression "LATITUDE" because Criteria::RAW works only with a clause containing a single question mark placeholder)

這是我的查詢。

$userArray = UserQuery::create() 
    ->where('(3959 * acos(cos(radians(?)) 
    * cos(radians(User.latitude)) 
    * cos(radians(User.longitude) - radians(?)) 
    + sin(radians(?)) 
    * sin(radians(User.latitude)))) > 10', 
    $user->getLatitude(), 
    $user->getLongitude(), 
    $user->getLatitude() 
)->find(); 
+1

您是否嘗試將數組作爲第一個參數傳遞給where方法? –

+0

是的,它工作。嘗試添加這個答案,我會接受。 – Dilshan

回答

1

您是否嘗試將數組作爲第一個參數傳遞給where方法? :)

+0

是的,工作。謝謝。 – Dilshan

0

對於任何人提到這一點。我能夠使用以下代碼實現此目的。

$userArray = UserQuery::create()->where('(3959 * acos(cos(radians(?)) 
              * cos(radians(User.latitude)) 
              * cos(radians(User.longitude) - radians(?)) 
              + sin(radians(?)) 
              * sin(radians(User.latitude)))) < 10000', 
              array($user->getLatitude(), 
              $user->getLongitude(), 
              $user->getLatitude()))->find();