MySQL с правой стороны в DBIx :: Class - PullRequest
1 голос
/ 18 ноября 2009

В DBIx :: Class, когда я генерирую запрос, используя этот синтаксис:

...
'Time(submitted_at)' => { '>' => 'Time(Now()-Interval ' . $wait_period . ' minute)' }
...

Сгенерированный запрос идеален, за исключением того факта, что функция справа находится в кавычках.

... AND ( Time(submitted_at) > 'Time(Now()-Interval 5 minute)' ) ...

Если бы это не было в кавычках, тогда это было бы правильно. Как бы я это сделал?

Спасибо, Rob

Ответы [ 2 ]

5 голосов
/ 18 ноября 2009

Это кажется , что способ сделать выражения - это передать скалярную ссылку или ссылку на массив, если вы хотите использовать буквальный SQL.

Вот пример, показывающий использование параметра запроса для переменной $wait_period в выражении:

...
'Time(submitted_at)' => { '>' => \['Time(Now()-Interval ? Minute)', $wait_period] }
...
4 голосов
/ 18 ноября 2009

Вместо этого передайте строку как скалярную ссылку:

...
'Time(submitted_at)' => \"> Time(Now()-Interval $wait_period minute)" 
...
...