Intereting Posts
Пользовательский serialize_handler для настраиваемого php SessionHandler (хранилище БД) как изменить ключи массива от верхнего к нижнему регистру? AWS SDK для PHP 2 – Изменение размера корневого тома при создании экземпляра netbeans autocompletion при использовании singleton для извлечения объекта вместо нового оператора? Symfony 1.4: Как я могу получить выбранное значение с помощью функции AJAX в зависимости от выбора? Укажите PHP-код для выбора дат и записей 3 дня Конвертер формата HTML в PDF, который решает CSS-шрифт @ font-face? Отправка данных, таких как целые числа и текстовые строки, из телефона в веб-базу данных Доктрина Symfony Многие для многих вставляют PHP из командной строки запускает программы gui, но apache не Веб-сайт подходит для экрана для планшетов, видовое окно не работает? Zend form setRequired (true) или addValidator (NotEmpty) Найти имя класса вызывающей функции в php Как создать удобный для пользователя URL-адрес с использованием псевдонима и идентификатора из базы данных? Хранение арабских слов с использованием Apache Solr 3.6.1

PHP привязка подстановочного знака

Надежда Кто-нибудь поможет мне в том, как я привязываю параметр в mysqli, когда подмножество нескольких символов должно быть рядом с значением переменной. Я обнаружил, что это сработало для меня при создании инструкции SQL, например:

$sql = "SELECT item_title FROM item WHERE item_title LIKE '%$title%'"; 

Однако я попытался связать переменную с тем же шаблоном и обнаружил, что она не удалась. Они использовали этот код:

 $sql = "SELECT item_title FROM item WHERE item_title LIKE '%?%'"; 

Он поднял эту ошибку:

Предупреждение: mysqli_stmt_bind_param () [function.mysqli-stmt-bind-param]: Число переменных не соответствует количеству параметров в подготовленном выражении в имени_программы в строке ……

Может ли кто-нибудь сказать мне, как исправить эту проблему? Спасибо.

Related of "PHP привязка подстановочного знака"

Вы можете связывать только литералы данных, а не произвольные части запроса.
Итак, подготовьте свой буквальный первый

 $var = "%$var%"; $sql = "SELECT item_title FROM item WHERE item_title LIKE ?"; 

Вы можете сделать так:

 $sql = "SELECT item_title FROM item WHERE item_title LIKE ? "; 

а потом

 $title_new = '%'.$title.'%'; mysqli_stmt_bind_param($stmt, 's', $title_new); 

Обновлено на основе комментария пользователя

Чтобы реализовать ниже SQL

  s2.subject_name LIKE '%$keyword%' OR c.city_name LIKE '%$keyword%' 

Использовать ниже заявление MySqli s2.subject_name LIKE? ИЛИ c.city_name LIKE?

  $keyword = '%'.$keyword.'%'; mysqli_stmt_bind_param($stmt, 'ss', $keyword, $keyword); 
  $sql="SELECT item_title FROM item WHERE item_title LIKE concat ('%',?,'%') "; 

имеют один знак вопроса для переменной привязки. Например, подготовьте (SELECT item_title FROM item WHERE item_title LIKE? И name2 как? И …). Хорошая вещь о подготовленных операторах заключается в том, что вам не нужно беспокоиться о цитировании переменных.

Затем привяжите все параметры, такие как bind_param («ss …», $ param1, $ param2, ….);