Przygotowane oświadczenia niczego nie umykają. Kiedy przygotowujesz instrukcję, twoje zapytanie jest prekompilowane, więc potrzebuje tylko symboli zastępczych ( ? ) do wypełnienia. Ponieważ nie ma możliwości zmiany kodu SQL prekompilowanego zapytania, nie jest potrzebne żadne wyjście.
Aby to naprawić, zapisz % i _ ręcznie.
Dodano:
Trochę zdrowego rozsądku:w twoim przypadku, gdy użytkownik wprowadzi % w polu wyszukiwania, Twoje $search zmienna zawiera ciąg %%% . Skąd miałby wiedzieć MySQL, który % powinien uciec, a które powinien zostawić w spokoju?