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?