Problème avec la syntaxe mysql
Fermé
allassanek007
Messages postés
5
Date d'inscription
mardi 23 février 2016
Statut
Membre
Dernière intervention
23 mars 2016
-
23 févr. 2016 à 12:09
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 23 févr. 2016 à 23:38
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 23 févr. 2016 à 23:38
A voir également:
- Problème avec la syntaxe mysql
- Mysql download - Télécharger - Bases de données
- Le paquet « mysql-server » n'a pas de version susceptible d'être installée ✓ - Forum Debian
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock' (2) ✓ - Forum Linux / Unix
- Trouver erreur de syntaxe fichier txt ✓ - Forum Programmation
- Erreur de syntaxe près du symbole inattendu « ( » ✓ - Forum C
5 réponses
Utilisateur anonyme
23 févr. 2016 à 23:30
23 févr. 2016 à 23:30
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 ?
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
Modifié par KX le 23/02/2016 à 23:48
Modifié par KX le 23/02/2016 à 23:48
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 !
Utilisateur anonyme
23 févr. 2016 à 12:18
23 févr. 2016 à 12:18
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.
allassanek007
Messages postés
5
Date d'inscription
mardi 23 février 2016
Statut
Membre
Dernière intervention
23 mars 2016
23 févr. 2016 à 23:25
23 févr. 2016 à 23:25
c'est le message d'erreur qui s'affiche comme ça sans espace pourtant je regarde dans mon code je ne vois pas d'erreur. Je suis totalement confus.
Regis59
Messages postés
21143
Date d'inscription
mardi 27 juin 2006
Statut
Contributeur sécurité
Dernière intervention
22 juin 2016
1 320
23 févr. 2016 à 12:18
23 févr. 2016 à 12:18
Salut,
Copie colle ta requête qui est dans ton code ici.
A+
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
allassanek007
Messages postés
5
Date d'inscription
mardi 23 février 2016
Statut
Membre
Dernière intervention
23 mars 2016
Modifié par KX le 23/02/2016 à 23:29
Modifié par KX le 23/02/2016 à 23:29
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); } }