Pour corriger l'erreur que vous recevez, mysql_real_escape_string()
nécessite une connexion ouverte via mysql_connect()
. Parce que vous n'en avez pas, il tente de se connecter et échoue (en utilisant un nom d'utilisateur de matthew
, alors que votre PDO se connecte avec root
). De plus, vous ne pouvez pas (ou, ne devriez pas ) mélanger et assortir mysql_real_escape_string()
et PDO
- ce sont des bibliothèques différentes.
En ce qui concerne "quand" utiliser des instructions préparées, la règle générale est que les valeurs ne sont pas codées en dur. Votre exemple de LIKE '%hotmail%'
n'a pas besoin d'être préparé, il est codé en dur et ne changera jamais (sauf si vous le mettez à jour manuellement, bien sûr).
Si vous avez une requête qui acceptera une variable de n'importe quel type, que ce soit des données de $_POST
ou $_GET
, ou une variable créée par un développeur 10 lignes avant la requête, vous devez utiliser une instruction préparée (ou au moins l'échapper, consultez PDO::quote
).