Problème avec la syntaxe mysql
allassanek007
Messages postés
7
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
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 ??
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 :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 asSQL = "SELECT * FROM" + nomTable + "WHERE" + état;
alors qu'il faudrait écrireSQL = "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 !
- n'utilises pas d'accent dans les noms en Java (comme
-
Bonjour
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. -
Salut,
Copie colle ta requête qui est dans ton code ici.
A+
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
package 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); } }