Forberedte udtalelser slipper ikke for noget. Når du forbereder en sætning, bliver din forespørgsel prækompileret, så den kun behøver pladsholderne ( ? ) skal udfyldes. Da der ikke er nogen måde at ændre SQL'en for prækompileret forespørgsel, er det ikke nødvendigt at undslippe.
For at løse dette, escape % og _ manuelt.
Tilføjet:
Lidt sund fornuft ræsonnement:I dit tilfælde, når en bruger indtaster % i et søgefelt, din $search variabel indeholder streng %%% . Hvordan ville MySQL vide, hvilken % den skal undslippe, og hvilken skal den lade være?