Partage
  • Partager sur Facebook
  • Partager sur Twitter

Api mysql en C++

Utiliser une base de donnée en C++

    2 mars 2015 à 1:34:17

    Salut à tous, j'ai suivi le tutoriel de Henon Fabien sur l'utilisation de l'API MySQL en C. Et là j'essai de reproduire cela en C++. J'arrive à l'insertion et  je bloque un peu alors j'ai besooin de votre aide. Lorsque je fais ça, aucun problème:

        MYSQL *mysql;

        MYSQL *connect;

        mysql = mysql_init(NULL);

        connect = mysql_real_connect(mysql,"localhost","root","","etudiant_db", 0, "", 0);

        if(connect)

        {

           if(mysql_query(mysql,"INSERT INTO t_edudiant VALUES('','ETD04','unNom','unPrenom','uneValeur')"))

            {

                cout<<"Enregistrement reussi";

            }

            mysql_close(mysql);

        }

        else

        {

            cout<<"Une erreur s'est produite lors de la connexion à la BDD!";

        }

        }

    Seulement je voudrais récupérer des valeur saisies et les insérer dans ma base de données, du genre:
    string var1,var2,var3,var4;
    cout<<"un message par exemple";
    cin>>var1;
    /* D'autres instructions et ainsi de suite jusqu'à var4 */
    mysql_query(mysql,"INSERT INTO t_edudiant VALUES('',var1,var2,var3,var4)");
    Aucune erreur mais rien n'est inséré non plus. Quelqu'un m'aide s'il vous plaît? Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      2 mars 2015 à 8:52:35

      Lu'!

      Quand tu postes un code sur le forum, utilise le bouton prévu à cet effet : </> (comme précisé dans les règles que tu as lu, n'est ce pas ?).

      Tu ne testes pas le retour de mysql_init : a-t-il fonctionné ?

      Tu es sûr que c'est sur la structure mysql que tu dois appeler query et pas sur la structure connect ?

      PS : pour avoir un truc qui tient la route en C++, il va falloir rendre ça RAII-conform.

      • Partager sur Facebook
      • Partager sur Twitter

      Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

        2 mars 2015 à 11:21:27

        Ok Ksass 'Peuk, merci de ta reponse et desolé pour le code brut. A l'avenir, j'eviterai cela.

        Oui même sans testé le retour du mysql_init, il fonctionne, et oui on peut appeler query directement sur la structure mysql. Maintenant j'avoue que je comprends pas trop où tu veux en venir quand tu dis:

        "Tu es sûr que c'est sur la structure mysql que tu dois appeler query et pas sur la structure connect ?

        PS : pour avoir un truc qui tient la route en C++, il va falloir rendre ça RAII-conform. "

        • Partager sur Facebook
        • Partager sur Twitter
          2 mars 2015 à 11:30:18

          santo17 a écrit:

          Tu es sûr que c'est sur la structure mysql que tu dois appeler query et pas sur la structure connect ?

          Ce que je veux dire c'est  qu'on a pas établi une connexion avec la base pour rien. Le connect nous renvoie une structure (dans la variable que tu as appelé "connect") es-tu sûr que c'est sur la variable que tu as appelé "mysql" et pas sur la variable que tu as appelé "connect" que tu dois appeler le query ?

          santo17 a écrit:

          PS : pour avoir un truc qui tient la route en C++, il va falloir rendre ça RAII-conform. "

          C++ est un langage à exceptions, il a donc besoin d'une politique particulière pour la gestion des ressources. En C++, c'est le RAII la politique qu'on utilise. Et en l'occurrence, une connexion à une base de données, c'est une ressource.

          • Partager sur Facebook
          • Partager sur Twitter

          Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

          Api mysql en C++

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown