1
時,Propel ORM無法過濾我試圖根據field1
和field2
的值查找記錄。這是我的查詢當字段值包含/或
$rec = RecQuery::create()->filterByField1($field1)
->filterByField2($field2)
->findOne();
$ field2有時可能有奇怪的字符。由於某些原因,每當$ field2包含\
或/
時,propel將無法檢索記錄並返回空結果。
如果我這樣做(讓基於字段1只,然後循環匹配場2的所有記錄),然後正常工作,並能找回它
$recs = RecQuery::create()->filterByField1($field1)->find();
foreach ($recs as $rec){
if($rec->getField2() == $field2)
//found the record
}
}
有誰知道問題是什麼?
你如何給'$ field2'賦值?你使用什麼數據庫?這可能是一個逃跑的錯誤,但我不知道誰應該逃避價值(可能是Propel)。 – 2011-03-10 08:11:20
@Jan Fabry我正在使用MySQL。 $ field2的值是從我的代碼(不是用戶輸入)中自動生成的,並且每次都可以很好地保存,沒有問題。不知道爲什麼filterByField2不起作用。我同意它應該是Propel的工作來照顧逃跑。我認爲Propel負責所有通過PDO層。至少,這就是我的想法,也是我爲什麼首先使用Propel(用於PDO層)的原因,並且我根本不會逃避我的用戶輸入,因爲我依賴於Propel這樣做。你有沒有嘗試過,發現類似的結果? – silow 2011-03-10 08:26:01