Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quand utiliser les requêtes préparées par PDO. erreur mysql_real_escape

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 ).