Partage
  • Partager sur Facebook
  • Partager sur Twitter

Insertion MySql

Sujet résolu
13 décembre 2020 à 13:35:15

Bonjour,

Je poste ici ayant un soucis, j'utilise ce code, pour écrire une requête sql et la passer à la méthode Insert.

            BaseDonnee bd = new BaseDonnee();
            string rq = "INSERT INTO client(nomClt, prenomClt, adresseClt, cpClt, villeClt, adresseMailClt, telClt) VALUES("+nomClt.ToString() + ','+prenomClt.ToString() + ','+adresseClt.ToString() + ','+cpClt.ToString() + ','+villeClt.ToString() + ','+emailClt.ToString() + ','+telClt.ToString()+")";

            bd.Insert(rq);

La méthode Insert de la classe BaseDonnee : 

        public void Insert(string rq)
        {
            
            if (this.OpenConnexion())
            {
                MySqlCommand command = connexion.CreateCommand();
                command.CommandText = rq;


                try
                {
                    command.ExecuteNonQuery();

                }
                catch (InvalidOperationException e)
                {
                }
                this.CloseConnexion();
                
            }
        }

Je précise que la connexion est ouvert avec la méthode OpenConnexion()

Lors de l’exécution de la requête j'ai cette erreur :

MySql.Data.MySqlClient.MySqlException : 'Erreur de syntaxe près de 'rue du test,04420,testland,test@test.com,0123456789)' à la ligne 1'

Si vous auriez une idée, ou une piste d'ou cette erreur peut provenir ça serait super.

Merci d'avance pour votre aide.

EDIT: Finalement sujet résolus, en corrigeant les quotes de la requête : 

            string rq = "INSERT INTO client(nomClt, prenomClt, adresseClt, cpClt, villeClt, adresseMailClt, telClt) VALUES('"+ nomClt + "','" + prenomClt + "','" + adresseClt + "','" + cpClt + "','" + villeClt + "','" + emailClt + "','" + telClt + "')";

-
Edité par Serkox 13 décembre 2020 à 13:58:41

  • Partager sur Facebook
  • Partager sur Twitter

#Avgeek

13 décembre 2020 à 20:05:26

Salut,

le problème de ta requête est que une injection SQL est possible.

Essaye de passer pas des requêtes préparées

  • Partager sur Facebook
  • Partager sur Twitter