Несколько переменных в propel create-query

Согласно api (http://trac.propelorm.org/wiki/Documentation/1.6/ModelCriteria) Я искал что-то вроде этого:

$param1 = 5;
$param2 = 3;

select id, name from testtable where ((sin(?) * (cos(?));

равно

select id, name from testtable where ((sin($param1) * (cos($param2));

Как я могу сделать это с помощью пропеля? Я нашел способ связать только 1 переменную одновременно.

(Я не хочу делать "И", я просто хочу связать больше, чем 1 переменную)

Из документов это для привязки одной переменной:

<?php
// Finding all Books where title = 'War And Peace'
$books = BookQuery::create()
  ->where('Book.Title = ?', 'War And Peace')
  ->find();
?>

person eav    schedule 14.05.2012    source источник
comment
В вашем запросе часть (sin(?) * (cos(?) не является логической (истинной/ложной) оценкой синтаксиса where???   -  person bitoshi.n    schedule 14.05.2012


Ответы (1)


Ну, я думаю, что Propel работает как Doctrine для этого момента, вы пробовали:

$res = TestQuery::create()
  ->where('((sin(?) * (cos(?))', array($param1, $param2))
  ->find();

Ps: ссылка на документацию очень старая, используйте новую: http://www.propelorm.org/reference/model-criteria.html

person j0k    schedule 14.05.2012
comment
Привет j0k, я пробовал, но не получилось. (Неустранимая ошибка: необработанное исключение «PropelException» с сообщением «Невозможно определить столбец для привязки к параметру в предложении». Я также не смог найти что-то в документе API о привязке двух параметров. - person eav; 15.05.2012
comment
На самом деле ошибка говорит о том, что вам нужно передать столбец в предложение where. Не можете ли вы указать столбец в предложении where? - person j0k; 15.05.2012
comment
Я понятия не имею, как это должно работать... это мое предложение where: $farmers-›where('ACOS(SIN(RADIANS(?))*SIN(RADIANS(широта))+COS(RADIANS(?))* COS(RADIANS(широта))*COS(RADIANS(долгота-?)))*6371 › ?', array($curLat, $curLat, $curLon, $settingsArea)); - person eav; 15.05.2012