Я пытаюсь найти запись на основе значений 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). - person Jan Fabry   schedule 10.03.2011