Rechercher : dans
Par :

C++ et mysql [Code::block]

Dernière réponse le 25 sep 2008 à 17:28:44 grollum, le 12 mar 2008 à 19:03:09 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « C++ et mysql [Code::block] » dans :
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
Télécharger le contenu d'une page WEB distante VoirIntroduction Installation sous Linux (Ubuntu / Debian) Installation sous Windows Dev C++ Microsoft Visual C++ Petite exploration des fonctions de libcurl Un exemple: télécharger la page d'accueil de CCM Notre fichier source Compilation...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...
Introduction au langage C VoirPetite histoire du C Le langage C a été mis au point par D.Ritchie et B.W.Kernighan au début des années 70. Leur but était de permettre de développer un langage qui permettrait d'obtenir un système d'exploitation de type UNIX portable. D.Ritchie...

1

Vinc14, le 12 mar 2008 à 20:53:37

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).

Répondre à Vinc14

2

grollum, le 13 mar 2008 à 18:56:35

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 ?

Répondre à grollum

3

Vinc14, le 13 mar 2008 à 20:02:10
  • +1

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 : http://www.siteduzero.com/...
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 !

Répondre à Vinc14

4

grollum, le 14 mar 2008 à 18:49:12

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 !

Répondre à grollum

5

 Micool, le 25 sep 2008 à 17:28:44

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.

Répondre à Micool