$result = mysqli_query($con,
'SELECT *
FROM table
WHERE ((title LIKE "%'.$search_key.'%" )
OR (name like "%'.$search_key.'%"))
ORDER BY UID DESC
LIMIT 4');
Я пытаюсь преобразовать приведенный выше код для использования с конструктором запросов. Я много пробовал. например:
$queryBuilder->expr()->like('title', "%'.$search_key.'%")
но это не сработало. Кто-нибудь, пожалуйста, помогите мне.
весь код:
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
->getQueryBuilderForTable('table');
$statement = $queryBuilder->select('*')
->from('table')
->orderBy('uid' ,'DESC')
->where(
$queryBuilder->expr()->like('title', "%'.$search_key.'%")
)
->execute();
$ queryBuilder = GeneralUtility :: makeInstance (ConnectionPool :: class) -> getQueryBuilderForTable ('таблица'); $ statement = $ queryBuilder-> select ('*') -> from ('table') -> orderBy ('uid', 'DESC') // -> setFirstResult (1) -> where ($ queryBuilder-> expr () -> like ('title', "% '. $ search_key.'%")) -> execute ();





Ваша конкатенация неверна, вы должны использовать одинарные кавычки, а не двойные кавычки:
->where($queryBuilder->expr()->like('title', '%' . $search_key . '%')
Вашему предложению будет легче следовать, если вы добавите объяснение, почему следует использовать одинарные кавычки вместо двойных.
ну, просто потому, что он использовал одинарную кавычку для первого аргумента, вы должны иметь некоторую последовательность в вашем коде.
Никогда не забывайте правильно цитировать! Случайный пример "лайка" можно найти на https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Database/QueryBuilder/Index.html#escapelikewildcards
Не могли бы вы предоставить нам всю свою часть $ querybuilder, чтобы убедиться, что вы ничего не забыли до / после.