3

我需要为 where 子句附加多个参数。有什么方法可以使用 Propel 来实现。它给了我,

Criteria:(错误:无法为表达式“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();
4

2 回答 2

1

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

于 2013-01-25T12:37:13.347 回答
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();
于 2013-01-25T12:37:03.280 回答