#typo3 #sql-like #query-builder
Вопрос:
Использование Typo3 QueryBuilder как аналогичного поиска с динамическим параметром не работает. Если я заменю переменную статической строкой, то получу ожидаемый результат
public function getAutocompleteData($query)
{
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_kesearch_index');
$queryBuilder->select('title')
->from('tx_kesearch_index')
->where(
$queryBuilder->expr()->like(
'title',
$queryBuilder->createNamedParameter('%' . $queryBuilder->escapeLikeWildcards($query)) // 'test' works
)
);
debug($queryBuilder->getSQL());
$data = $queryBuilder->execute();
return $data->fetchAll();
}
В чем здесь разница? Как правильно использовать динамические значения?
Ответ №1:
Может быть, это из-за пропажи %
в конце:
$queryBuilder->createNamedParameter('%' . $queryBuilder->escapeLikeWildcards($query) . '%')
Комментарии:
1. спасибо за обратную связь, похоже, это не работает, я прикрепил скриншот об отладке. Я думаю, это из-за цитат