Первый раз постер. Обычно я могу это понять самостоятельно. Но, увы, я ударил по кирпичной стене.QoQ: LIKE сравнение не возвращает всех ожидаемых записей
Основы здесь Я пытаюсь взломать каталог продуктов в пользовательскую систему CRM, которую у меня есть. Я использую систему DAO для извлечения данных из базы данных с функциями для чтения и фильтрации. Фильтр представляет собой запрос запросов.
Проблема в том, что я создаю функцию поиска для поиска страницы.
<cfset this.itemSet = this.damoney_itemsDAO.filter(this.searchData
, "item_name LIKE '%#resultList#%'") />
Когда я сбросить запрос здесь я получаю:
SELECT (fields)
FROM arguments.query(which is just a mass read)
WHERE item_name LIKE '%electrodes%'
В БД есть элементы, такие как «Бла Бла электродах», которые не получают вытягивались. Когда я запускаю его в базе данных, я получаю результат, который я ищу. Но программно он отображает только 2 элемента.
<cfoutput query="this.itemSet" startRow="#start#" maxRows="#perpage#">
Здесь я буду выводить информацию и нет, если есть или что-то еще. Это всего лишь HTML, чтобы перечислять элементы.
С удовольствием предоставит дополнительную информацию, если необходимо. Но если кто-то здесь работал с системой DAO и раньше сталкивался с этой проблемой, возможно, вы можете дать некоторое представление.
У меня также есть опция запроса, встроенная в DAO, но я стараюсь избежать этого при всех затратах из-за серьезной проблемы безопасности, связанной с этим. (инъекция)
Это поможет увидеть образец «ожидаемых» записей и записи «на самом деле». RE: * такие предметы, как «Blah Blah Electrodes» * Глупый вопрос, но отражает ли QoQ тот факт, что QoQ чувствительны к регистру? Потому что ''% электродов% ''не будет соответствовать ** ** ** лекциям". – Leigh
это не так. Но это приводит меня к правильному пути – inozzel
* стараюсь избежать этого ... из-за серьезной проблемы безопасности, связанной с этим * Именно о том, о каких рисках вы говорите? Любые запросы в приложении должны использовать 'cfqueryparam' именно по этой причине. – Leigh