Résoudre les problèmes de fonction PASSWORD dans MySQL Server 8.0
Lors de la tentative d'exécution de la fonction PASSWORD dans MySQL Server version 8.0.12, certains scénarios peuvent déclencher une erreur. Cet article vise à résoudre ces problèmes et à fournir une solution viable.
Code d'erreur 1064
Si vous rencontrez l'erreur « Code d'erreur : 1064. Vous avez une erreur dans votre syntaxe SQL...", cela indique un problème avec la syntaxe de votre requête. Plus précisément, la syntaxe de la fonction PASSWORD a changé dans MySQL Server version 8.0.
Nouvelle syntaxe
Avec MySQL Server 8.0, la fonction PASSWORD a été obsolète et remplacée par une autre mécanisme de hachage. Pour maintenir la compatibilité, vous devez utiliser la syntaxe suivante pour générer un hachage équivalent à celui produit par la fonction PASSWORD dans les versions précédentes :
CONCAT('*', UPPER(SHA1(UNHEX(SHA1('my_password')))))
Exemple
Dans la requête fournie, "pwd = PASSWORD('2018')" représente la comparaison de la colonne "pwd" avec un mot de passe statique. Pour récupérer les utilisateurs avec le mot de passe '2018' en utilisant la nouvelle syntaxe, vous pouvez modifier la requête comme suit :
SELECT * FROM users WHERE login = 'FABIO' AND pwd = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('2018'))))) LIMIT 0, 50000
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!