C++ et mysql [Code::block]

grollum Messages postés 44 Statut Membre -  
 Micool -
Bonjour à tous,
Je cherche actuellement à piloter MySql depuis un programme en C++ sous Code::block.
Voici mon code :
#include <iostream>
#include <windows.h>
#include <mysql/mysql.h>

int main()
{
    MYSQL *mysql;
    MYSQL *connect;
    int ok;
    char query[] = "INSERT INTO connectes VALUES('', pseudo')";

    mysql = mysql_init(NULL);
    connect = mysql_real_connect(mysql,"host","pseudo","mot_de_passe", "bdd", 0, "", 0);

    ok = mysql_real_query(connect, query, (unsigned int) strlen(query));

    mysql_close(mysql);

    return 0;
}


Et lorsque je le compile j'obtiens une erreur :

obj\Debug\main.o||In function `main':|
rald\Mes documents\Blocks\Programmes\api\main.cpp|12|undefined reference to `mysql_init@4'|
rald\Mes documents\Blocks\Programmes\api\main.cpp|13|undefined reference to `mysql_real_connect@32'|
rald\Mes documents\Blocks\Programmes\api\main.cpp|15|undefined reference to `mysql_real_query@12'|
rald\Mes documents\Blocks\Programmes\api\main.cpp|17|undefined reference to `mysql_close@4'|
||=== Build finished: 4 errors, 0 warnings ===|


D'après mes recherches, le problème viens des liens, mais j'ai essayé pas mal de choses et à chaque fois une nouvelle erreur survient !

Si vous avez la solution donnez la moi... je vous en prie =(
Configuration: Windows XP
Firefox 2.0.0.12

2 réponses

  1. Micool
     
    En fait ton problème c'est que tu n'as sans doute pas lié la librairie libmysql à ton projet, ce qui fait que ta compilation échoue lors de l'édition des liens.
    1
  2. Vinc14 Messages postés 53 Statut Membre 1
     
    Je ne suis pas un pro du C mais il me semble que dans la chaine caractères "query" il y a une quote en trop, juste après pseudo... Cela ne semble pas vraiment avoir de rapport avec les messages du compilo mais ça fait inévitablement planter la requête à l'éxécution.

    Vérifie tes include, il me semble qu'il faut aussi inclure winsock lorsqu'on utilise la bibliothèque Mysql en C (à confirmer).
    0
    1. grollum
       
      Merci de m'avoir signalé le problème de quote ^^. Mais en se qui concerne winsock, je ne parviens pas à l'inclure :
      rald\Mes documents\Blocks\Programmes\api\main.cpp|3|winsock: No such file or directory|
      Je suppose que je dois le télécharger quelque part, connaît tu l'adresse précise ?
      0
      1. Vinc14 Messages postés 53 Statut Membre 1 > grollum
         
        Normalement il est déjà là...
        #include <winsock.h>
        AVANT d'include mysql.h devrait le faire...
        T'as bien pensé à linker le .a correspondant ? Attention, ce n'est pas le même fichier à linker avec winsock et avec winsock2.

        Je vais faire un peu de pub mais je te suggère ce tuto du site du Zéro : https://openclassrooms.com/fr/courses
        Même si tu sais utiliser l'APi MySql ça peut pas faire de mal :p . Cependant c'est pour l'utiliser en C et non en C++, attention !
        0
      2. grollum Messages postés 44 Statut Membre > Vinc14 Messages postés 53 Statut Membre
         
        Merci beaucoup pour ce lien ! C'est sur se site que j'ai appris le XHTML, le PHP, le C et le C++ ! Je ne savais pas qu'il y avait un tuto à ce sujet ! En ce qui concerne le linkage je ne suis pas très au point =S, mais j'espère que ce tuto aura les réponse à mes questions ^^ merci encore !
        -1