C++ et mysql [Code::block]

Fermé
grollum Messages postés 44 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 21 février 2009 - 12 mars 2008 à 19:03
 Micool - 25 sept. 2008 à 17:28
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 =(
A voir également:

2 réponses

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
Vinc14 Messages postés 52 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 31 janvier 2012 1
12 mars 2008 à 20:53
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
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
Vinc14 Messages postés 52 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 31 janvier 2012 1 > grollum
13 mars 2008 à 20:02
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
grollum Messages postés 44 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 21 février 2009 > Vinc14 Messages postés 52 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 31 janvier 2012
14 mars 2008 à 18:49
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