MySqli выдает сообщение об ошибке при использовании для LIKE

Я пытаюсь сделать подготовленный оператор для запроса LIKE, используя расширение mysqli php. Но независимо от того, что я пытаюсь, я всегда получаю эту ошибку:

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) 

Помогите мне, пожалуйста, я расстроен.

Я бы переместил выражение после LIKE в переменную:

 $param = '%somestring%'; $sql = "SELECT f.*,r.slug FROM `foods` AS f INNER JOIN `resturants` AS r ON f.`rest_id` = r.`rest_id` WHERE f.`name` LIKE ?" 

ОБНОВИТЬ:

Может быть, это поможет

 -- test.sql CREATE TABLE supportContacts ( id int auto_increment primary key, type varchar(20), details varchar(30) ); INSERT INTO supportContacts (type, details) VALUES ('Email', 'admin@sqlfiddle.com'), ('Twitter', '@sqlfiddle'); <?php // test.php $mysqli = new mysqli("localhost", "root", "root", "test"); $sql = 'SELECT type FROM supportContacts WHERE type LIKE ?'; // here is only ?, no % $stmt = $mysqli->prepare($sql); $type = 'E%'; // and here you can put % sign $stmt->bind_param('s', $type); $stmt->execute(); $stmt->bind_result($result); $stmt->fetch(); var_dump($result); 

Ваш % необходимо заключить в кавычки.