Per correggere l'errore che stai ricevendo, mysql_real_escape_string()
richiede una connessione aperta tramite mysql_connect()
. Poiché non ne hai uno, sta tentando di connettersi e non riesce (usando un nome utente di matthew
, mentre il tuo PDO si sta connettendo con root
). Inoltre, non puoi (o, non dovresti ) mescola e abbina mysql_real_escape_string()
e PDO
- sono librerie diverse.
Per quanto riguarda "quando" utilizzare le istruzioni preparate, la regola generale è quando i valori non sono hardcoded. Il tuo esempio di LIKE '%hotmail%'
non ha bisogno di essere preparato, è codificato e non cambierà mai (a meno che non lo aggiorni manualmente, ovviamente).
Se hai una query che accetterà una variabile di qualsiasi tipo, siano dati da $_POST
o $_GET
, o una variabile che uno sviluppatore ha creato 10 righe prima della query, dovresti usare un'istruzione preparata (o almeno evitarla, controlla DOP::quote
).