Я пытаюсь сделать подготовленный оператор для запроса LIKE с использованием расширения mysqli php. Но независимо от того, что я стараюсь, я всегда получаю эту ошибку:MySqli make statement error при использовании для LIKE
Fatal error: Problem preparing query (SELECT f.*,r.slug FROM `foods` AS f INNER JOIN `resturants` AS r ON f.`rest_id` = r.`rest_id` WHERE f.`name` LIKE CONCAT('%',"f", '%')) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''%',"f", '%')' at line 4 in /path/to/class.mysqli.php on line 462
Я попытался следующие запросы но безрезультатно: (. $s
бы мою строку поиска с)
SELECT f.*,r.slug FROM `foods` AS f
INNER JOIN `resturants` AS r
ON f.`rest_id` = r.`rest_id`
WHERE f.`name` LIKE '%?%'
SELECT f.*,r.slug FROM `foods` AS f
INNER JOIN `resturants` AS r
ON f.`rest_id` = r.`rest_id`
WHERE f.`name` LIKE CONCAT('%', ?, '%')
SELECT f.*,r.slug FROM `foods` AS f
INNER JOIN `resturants` AS r
ON f.`rest_id` = r.`rest_id`
WHERE f.`name` LIKE CONCAT('%', {$s}, '%')
SELECT f.*,r.slug FROM `foods` AS f
INNER JOIN `resturants` AS r
ON f.`rest_id` = r.`rest_id`
WHERE f.`name` LIKE '%{$s}%'
Даже:
sprintf("SELECT f.*,r.slug FROM `foods` AS f
INNER JOIN `resturants` AS r
ON f.`rest_id` = r.`rest_id`
WHERE f.`name` LIKE '%%%s%%'", $s)
Помогите мне пожалуйста, я получаю разочарование.
Hm, 'CONCAT ('%', ' % ') 'должен работать AFAIK ..... И после некоторого тестирования он фактически работает в MySQL (не проверял сам mysqli). Хотя ... вы используете ACTUAL 'mysqli' или издевались? Потому что '/ path/to/class.mysqli.php' меня смущает ... – Wrikken
Это класс обертки. Но это в основном сводится к объекту mysqli. –
Но _is_ это обертывание 'mysqii' или перенос чего-то еще? И ... Вероятно, вам нужно показать этот класс. – Wrikken