2014-04-20 4 views
0

Je suis en train d'interroger pour le mot de passe de la personne qui correspond au nom d'utilisateur rempli. Ceci, cependant, ne fonctionne pas! Pour une raison quelconque, la même requête qui fonctionne pour un compte ne fonctionne pas pour un autre compte. Je me suis assuré que je n'ai fait aucune faute de frappe dans la requête ou le nom d'utilisateur et je suis sûr que le nom d'utilisateur que j'ai recherché existe.requête renvoie vide même si elle devrait retourner un résultat

Exemple:
mot de passe SELECT FROM utilisateurs WHERE nom d'utilisateur = 'admin'
Cela me donne le mot de passe pour le compte administrateur.
SELECT mot de passe FROM utilisateurs O WH nom d'utilisateur = 'user'
Il en résulte rien et il n'y a pas d'erreur de syntaxe. Je suis certain qu'il y a un 'utilisateur' dans ma base de données.

Qu'est-ce que je fais mal?

+3

Pouvez-vous montrer la table db-? –

+0

Évidemment, il n'y en a pas. Peut-être qu'il y a des espaces ou quelque chose en insérant 'user', essayez LIKE search ou trim –

+0

Il n'y a pas d'espaces. J'ai utilisé exactement la même requête que j'ai utilisée sur 'admin'. La seule chose que j'ai changé était admin à l'utilisateur. – user3546193

Répondre

0

peut-être le dossier qui a le nom d'utilisateur « utilisateur » la valeur possède un espace comme celui-ci « utilisateur » ou « utilisateur » donc modifier l'enregistrement et assurez-vous pas d'espace ajouté, ou vous pouvez faire

SELECT password FROM users WHERE username like '%user%' 

à vérifier si l'enregistrement est là.

ou cette

SELECT password FROM users where trim(username)='user' 
+0

Cette requête fonctionne.Il m'a donné le mot de passe correct, mais cette méthode fonctionnera-t-elle quand il y a plus d'utilisateurs avec un nom d'utilisateur qui ressemble à l'utilisateur? – user3546193

+0

@ user3546193: I recommandez-vous 'SELECT HEX (nom d'utilisateur) FROM utilisateurs WHERE nom d'utilisateur LIKE '% user%'' pour comprendre quelle valeur 'username' contient réellement, puisque ce n'est pas '' user'' – eggyal

+0

Cette requête retourne: 2075736572. Je ne suis pas – user3546193

Questions connexes