IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[PreparedStatement][MySql] fonction PASSWORD


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [PreparedStatement][MySql] fonction PASSWORD
    Bonjour,

    Dans ma base de données mes passwords sont encryptés avec la fonction PASSWORD. C'est pourquoi quand je veux trouver si un login existe, je fais la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM Login WHERE (login='monemail' AND password = PASSWORD ('monpasswd'))
    ce qui fonctionne dans mon interface phpMyadmin

    Dans mon code java, j'ai écrit ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    String query = "SELECT * FROM Login WHERE (login=? AND password = PASSWORD (?));";
     
    try
    {
      connection = ConnectionManagerJdbc.getInstance( ).getConnection( );
      PreparedStatement ps = connection.prepareStatement( query );
      ps.setString( 1, login );
      ps.setString( 2, password );
     
      rs = ps.executeQuery( query );
    Ce code me donne l'erreur suivante :

    java.sql.SQLException: Syntax error or access violation message from server: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? AND password = PASSWORD (?))' at line 1"


    Je suis embêtée étant donnée que j'ai testé la syntaxe dans phypMyadmin. La seule différence, ce sont les quotes autour des points d'interrogation. Mais si je les mets, PreparedStatement considère que je n'ai plus qu'une seule entrée et non deux. Il me fait donc une erreur de taille de tableau.

    Des idées neuves et lumineuses ?

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 136
    Par défaut
    Bonjour,

    C'est
    <u>sans argument</u> si tu veux passer la requête en argument alors elle doit être "prête", sans '?'

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci ! Le petit détail qui tue !!!

  4. #4
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    il te suffit d'enlever le ";" à la fion de ta requete ...

    tu peux mettre en delestage je pense ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. HQL MySQL fonction Password
    Par superviny dans le forum Persistance des données
    Réponses: 7
    Dernier message: 03/02/2015, 10h14
  2. Aide: Comme utiliser la fonction Password() de MySQL
    Par belaggoun2000 dans le forum MySQL
    Réponses: 3
    Dernier message: 09/02/2009, 11h09
  3. Réponses: 2
    Dernier message: 15/02/2007, 10h15
  4. [MySQL] MYSQL / Fonctions Heure
    Par Marmottux72000 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/12/2006, 14h25
  5. [MySQL] Fonctions Date heure
    Par Marmottux72000 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 07/12/2006, 14h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo