For at løse den fejl, du modtager, skal du mysql_real_escape_string()
kræver en åben forbindelse via mysql_connect()
. Fordi du ikke har en, forsøger den at oprette forbindelse og mislykkes (ved hjælp af brugernavnet matthew
, mens din PDO forbinder med root
). Derudover kan du ikke (eller bør ikke). ) bland og match mysql_real_escape_string()
og PDO
- de er forskellige biblioteker.
Med hensyn til "hvornår" skal man bruge forberedte udsagn, er den generelle tommelfingerregel, når værdier ikke er hårdkodede. Dit eksempel på LIKE '%hotmail%'
behøver ikke at være forberedt, det er hårdkodet og vil aldrig ændre sig (medmindre du manuelt opdaterer det, selvfølgelig).
Hvis du har en forespørgsel, der vil tage en variabel af en hvilken som helst art ind, kan det være data fra $_POST
eller $_GET
, eller en variabel, som en udvikler lavede 10 linjer før forespørgslen, skal du bruge en forberedt erklæring (eller i det mindste undslippe den, tjek PDO::citat
).