Подготвените изявления не убягват от нищо. Когато подготвяте изявление, вашата заявка се компилира предварително, така че се нуждае само от заместителите ( ?
) да се попълни. Тъй като няма начин да се промени SQL на предварително компилираната заявка, не е необходимо екраниране.
За да коригирате това, избягайте от %
и _
ръчно.
Добавено:
Малко разумни разсъждения:Във вашия случай, когато потребител въведе %
в поле за търсене, вашето $search
променливата съдържа низ %%%
. Откъде MySQL знае кой %
трябва да избяга и кое да остави на мира?