where子句中的多个参数

时间:2013-01-25 12:02:48

标签: php sql propel

我需要为where子句附加多个参数。有没有办法用Propel实现这一目标。它给了我,

  

标准:(错误:无法为表达式“LATITUDE”构建SQL,因为Criteria :: RAW仅适用于包含单个问号占位符的子句)

这是我的疑问。

$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();

2 个答案:

答案 0 :(得分:1)

您是否尝试将数组作为第一个参数传递给where方法? :)

答案 1 :(得分: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();