lodas
(Zybov M)
1
Здравствуйте. Поучаю переменную для поиска:
$find=$_POST['search_query'];//строка введенная в поиск
Делаю запрос с помощью оператора LIKE в БД:
$rez_product =Product::model()->findAll('name=:find',array(':find'=> "LIKE'%$find%'"));
Почему он ничего не находит? может оператор LIKE нужно где то отдельно прописать?
ineersa
(Ineersa)
2
Попробуйте так:
$rez_product =Product::model()->findAll('name LIKE "%:find%"',array(':find'=> $find));
lodas
(Zybov M)
3
ineersa, спасибо я попробовал- тоже ничего не находит. А можно еще как то по другому через плейсхолдеры пропустить?
lodas
(Zybov M)
4
при выполнении:
$rez_product =Product::model()->findAll('name LIKE "%:find%"',array(':find'=> $find));
в логах пишет следующее:
HOW FULL COLUMNS FROM `product`
SHOW CREATE TABLE `product`
SELECT * FROM `product` `t` WHERE name LIKE "%'запрос на поиск'%"
Но все равно не понятно что нужно в данном случае подправить?
Лайк-запросы строятся примерно так:
$rez_product = Product::model()->findAll('name LIKE :find', array(':find'=> '%' . $find . '%'));