Problème avec la syntaxe mysql
allassanek007
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, je développe une application de gestion de stock en java, j'ai déjà créé la base de donnée avec phpmyadmin, mais lorsque je compile le projet, je demande à l'utilisateur de saisir son nom d'utilisateur et son mot de passe, et quand je valide, la fenêtre qui doit s'ouvrir ne s'affiche pas mais plutôt ce message d'erreur : "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 'FROMutlisateurWHEREusername''and password=''' at line 1. et je n'arrive plus à progresser depuis. svp quelqu'un peut-il m'aider ??
A voir également:
- Problème avec la syntaxe mysql
- Mysql community server - Télécharger - Bases de données
- Mysql error 2002 ✓ - Forum Linux / Unix
- Trouver erreur de syntaxe fichier txt ✓ - Forum PHP
- Impossible d'ouvrir un fichier txt avec Python ✓ - Forum Python
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
5 réponses
je regarde dans mon code je ne vois pas d'erreur
Je t'ai dit qu'il manquait des espaces.
Dans ton code, tu oublies la plupart des espaces. Je prends au hasard :
Où est l'espace entre FROM et le nom de la table ?
Où est l'espace entre le nom de la table et WHERE ?
Où est l'espace entre WHERE et la condition qui suit ?
Je t'ai dit qu'il manquait des espaces.
Dans ton code, tu oublies la plupart des espaces. Je prends au hasard :
SQL = "SELECT * FROM" + nomTable + "WHERE" + état;
Où est l'espace entre FROM et le nom de la table ?
Où est l'espace entre le nom de la table et WHERE ?
Où est l'espace entre WHERE et la condition qui suit ?
Comme indiqué précédemment tu as des problèmes avec les espaces.
Par exemple tu as
Remarque (juste pour cette ligne, mais il y aurait tellement de chose à dire sur le reste du code) :
Par exemple tu as
SQL = "SELECT * FROM" + nomTable + "WHERE" + état;alors qu'il faudrait écrire
SQL = "SELECT * FROM " + nomTable + " WHERE " + état;...
Remarque (juste pour cette ligne, mais il y aurait tellement de chose à dire sur le reste du code) :
- n'utilises pas d'accent dans les noms en Java (comme
état
ici), une fois compilé - respectes les conventions de nommages, comme par exemple les noms de variables en minuscule (donc
sql
et nonSQL
) - utilises des noms de variables/méthodes en anglais, toutes les API Java sont en anglais, par exemple
queryDelete(String nomtable)
ça pique... - attention à l'injection SQL, en ne faisant aucun contrôle sur les paramètres que tu concatènes, cela t'exposes à des failles de sécurité importantes. Exemple :
String nomTable = "DUAL; DROP maTable; //", état = "";
ce qui donne la requêteSELECT * FROM DUAL; DROP maTable; // WHERE
... bonjour les dégâts !
Bonjour
En fait, tu as plusieurs erreurs :
- Il faut des espaces entre les mots
- Il faut un = entre username et ''
- As-tu bien écrit le nom de la table utlisateur ? Ce ne serait pas plutôt utilisateur ?
- Tu récupères probablement mal les nom et mot de passe rentrés par l'utilisateur, car il apparaissent vides.
Corrige d'abord ce que tu peux puis donne-nous le nouveau message d'erreur et les lignes de code où tu récupères les variables, jusqu'à la requête.
En fait, tu as plusieurs erreurs :
- Il faut des espaces entre les mots
"FROM utilisateur WHERE username…".
- Il faut un = entre username et ''
- As-tu bien écrit le nom de la table utlisateur ? Ce ne serait pas plutôt utilisateur ?
- Tu récupères probablement mal les nom et mot de passe rentrés par l'utilisateur, car il apparaissent vides.
Corrige d'abord ce que tu peux puis donne-nous le nouveau message d'erreur et les lignes de code où tu récupères les variables, jusqu'à la requête.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionpackage Application; import java.net.Socket; import java.sql.*; public class BDD { //les declarations Connection connection; Statement statement; String SQL; String url; String username; String password; Socket client; int Port; String Host; public BDD(String url, String username, String password, String Host, int Port){ this.url = url; this.username = username; this.password = password; this.Host = Host; this.Port = Port; } // fonction pour faire connexion a la base de données public Connection connexionDatabase() { try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection(url, username, password); } catch (Exception e) {System.err.println(e.getMessage()); } return connection; } // fontion pour fermer la base de données public Connection closeconnexion() { try { connection.close(); } catch (Exception e) {System.err.println(e); } return connection; } // pour l'execution de requette public ResultSet exécutionQuery(String sql) { connexionDatabase(); ResultSet resultSet = null; try { statement = connection.createStatement(); resultSet = statement.executeQuery(sql); System.out.println(sql); } catch (SQLException ex) {System.err.println(ex); } return resultSet; } // pour exection de requette update public String exécutionUpdate(String sql) { connexionDatabase(); String result = ""; try { statement = connection.createStatement(); statement.executeUpdate(sql); result = sql; } catch (SQLException ex) { result = ex.toString(); } return result; } // fonction de requette pour afficher tout public ResultSet querySelectAll(String nomTable) { connexionDatabase (); SQL = "SELECT * FROM " + nomTable; System.out.println(SQL); return this.exécutionQuery(SQL); } // fontion pour afficher tout avec le parametre ("état") public ResultSet querySelectAll(String nomTable, String état) { connexionDatabase (); SQL = "SELECT * FROM" + nomTable + "WHERE" + état; return this.exécutionQuery(SQL); } // public ResultSet querySelect(String[] nomColonne, String nomTable) { connexionDatabase (); int i; SQL = "SELECT"; for (i = 0; i <= nomColonne.length - 1; i++) { SQL += nomColonne[i]; if (i < nomColonne.length - 1) { SQL += ","; } } SQL += "FROM" + nomTable; return this.exécutionQuery(SQL); } // public ResultSet fcSelectCommand(String[] nomColonne, String nomTable, String état) { connexionDatabase(); int i; SQL = "SELECT"; for (i =0; i <= nomColonne.length - 1; i++) { SQL += nomColonne [i]; if (i < nomColonne.length - 1) { SQL += ","; } } SQL += "FROM" + nomTable + "WHERE" + état; return this.exécutionQuery(SQL); } //fonction d'enrer de données public String queryInsert(String nomTable, String[] contenuTableau) { connexionDatabase(); int i; SQL = "INSERT INTO" + nomTable + "VALUES("; for (i = 0; i <= contenuTableau.length - 1; i++) { SQL += "'" + contenuTableau[i] + "'"; if (i < contenuTableau.length - 1) { SQL += ","; } } SQL += ")"; return this.exécutionUpdate(SQL); } // public String queryInsert(String nomTable, String[] nomColonne, String[] contenuTableau) { connexionDatabase(); int i; SQL = "INSERT INTO" + nomTable + "("; for (i = 0; i <= nomColonne.length - 1; i++) { SQL += nomColonne[i]; if (i < nomColonne.length - 1) { SQL += ","; } } SQL += ") VALUES("; for (i = 0; i <= contenuTableau.length - 1; i++) { SQL += "'" + contenuTableau[i] + "'"; if (i < contenuTableau.length - 1) { SQL += ","; } } SQL += ")"; return this.exécutionUpdate(SQL); } // public String queryUpdate(String nomTable, String[] nomColonne, String[] contenuTableau, String état) { connexionDatabase(); int i; SQL = "UPDATE" + nomTable + "SET"; for (i = 0; i <= nomColonne.length - 1; i++) { SQL += nomColonne[i] + "='" + contenuTableau[i] + "'"; if (i < nomColonne.length - 1) { SQL += ","; } } SQL += "WHERE" + état; return this.exécutionUpdate(SQL); } //fonction pour la requette supprimer sans parametre public String queryDelete (String nomtable) { connexionDatabase (); SQL = "DELETE FROM" + nomtable; return this.exécutionUpdate(SQL); } //fontion pour la requette supprimer avec parametre public String queryDelete (String nomtable, String état) { connexionDatabase (); SQL = "DELETE FROM" + nomtable + " WHERE " + état; return this.exécutionUpdate(SQL); } }