2009-11-18 45 views
1

在DBIx ::類,當我使用此語法生成的查詢:右手側MySQL函數在DBIx ::

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

生成的查詢是除了事實完美該函數上右邊是引號。

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

如果沒有引用它,那麼它是正確的。我會怎麼做?

感謝, 羅布

回答

4

傳遞字符串作爲一個標量引用來代替:

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

謝謝你的答覆。我似乎無法弄清楚爲什麼它不以這種方式解釋引用。與上述(沒有改變)我得到這個SQL生成: ...(時間(submitted_at)>'SCALAR(0x108b8cd8)')... – rplevy 2009-11-18 21:02:04

+0

嗯,我想它只喜歡在頂級標量參考的散列。我相應地修改了我的答案,現在可以使用嗎? – 2009-11-18 21:10:49

+0

是的,我剛纔想到了這個問題,是關於這個帖子的,但是你打敗了我。謝謝您的幫助! – rplevy 2009-11-18 21:15:45

5

seems,這樣做的表達方式是,如果你想用它來傳遞一個標量ref或數組引用文字SQL。

下面是使用用於$wait_period變量的查詢參數到表達示出一個例子:

... 
'Time(submitted_at)' => { '>' => \['Time(Now()-Interval ? Minute)', $wait_period] } 
... 
+1

用於使用查詢參數而不是純字符串連接 – 2009-11-18 20:51:41