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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 23 févr. 2016 à 23:38
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 23 févr. 2016 à 23:38
A voir également:
- Problème avec la syntaxe mysql
- Mysql community server - 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/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Mysql error 1 ✓ - Forum Réseaux sociaux
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
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
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 321
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); } }