mysql_real_escape_string()
om de fout die u ontvangt te verhelpen
vereist een open verbinding via mysql_connect()
. Omdat je er geen hebt, probeert het verbinding te maken en mislukt het (met een gebruikersnaam van matthew
, terwijl uw PDO verbinding maakt met root
). Bovendien kunt u (of mag niet) ) mix en match mysql_real_escape_string()
en PDO
- het zijn verschillende bibliotheken.
Wat betreft "wanneer" om voorbereide instructies te gebruiken, is de algemene vuistregel wanneer waarden niet hardcoded zijn. Jouw voorbeeld van LIKE '%hotmail%'
hoeft niet te worden voorbereid, het is hard gecodeerd en zal nooit veranderen (tenzij je het handmatig bijwerkt, natuurlijk).
Als u een zoekopdracht heeft die een variabele van welke aard dan ook inneemt, zij het gegevens van $_POST
of $_GET
, of een variabele die een ontwikkelaar 10 regels voor de query heeft gemaakt, moet u een voorbereide instructie gebruiken (of er in ieder geval aan ontsnappen, bekijk BOB::quote
).