Bonjour,
j'essaie de me connecter à une base de données avec la livrairie mysql. Je suis sous linux (fedora 8).
mon code est simple :  
 
int main(){
 char login[10]="", pass[16]="";
 char* db="diris_c",* server="localhost",*table="mesures";
 MYSQL *mysql;
 printf("Login : " );
 scanf("%s",&login);
 printf("\nPassword : " );
 scanf("%s",&pass);
 mysql=mysql_init(NULL);
 if (!mysql_real_connect(mysql,server,login,pass,db,0,NULL,0)){
       	perror("Erreur de connexion" );
 	return -1;
   	}
 printf("Connexion etablie...\n" );
 char *my_requete_sql;
 float valeur=220.29;
 int IDtype=2;
 int IDphase=4;
 my_requete_sql = malloc(sizeof (char) * 250);
 sprintf(my_requete_sql,"INSERT INTO mesures(valeur,IDtype,IDphase) VALUES (%'.2f,%d,%d)",valeur, IDtype, IDphase);
 mysql_query(mysql, my_requete_sql);
 free(my_requete_sql);
 mysql_close(mysql);
 return 1;
}
 
Ce n'est qu'une premiere ébauche mais déja j'ai des problèmes de compilation.  
Au début j'ai ajouté #include <mysql/mysql.h>
J'en ai besoin pour les fonctions mysql_real_connect, close, query et init.. C'est la qu'il y a problème. Si je mets un mauvais paramètre en en entrée d'une de ces fonctions, le compilateur me dit qu'il y a unj problème. Mais si je fait tout correctement, j'ai une erreur bizarre :  
 
[VorteX-on@localhost BDD]$ gcc -g -o testBDD bdd.c
/tmp/cc40aeYj.o: In function `main':
/home/VorteX-on/BDD/bdd.c:14: undefined reference to `mysql_init'
/home/VorteX-on/BDD/bdd.c:15: undefined reference to `mysql_real_connect'
/home/VorteX-on/BDD/bdd.c:26: undefined reference to `mysql_query'
/home/VorteX-on/BDD/bdd.c:28: undefined reference to `mysql_close'
collect2: ld a retourné 1 code d'état d'exécution
[VorteX-on@localhost BDD]$  
 
Pour essayer, j'ai même copié le contenu du repertoire /usr/include/mysql/ dans mon dossier courant et changé la ligne d'include en #include "mysql.h" , même erreur.
Avant ca j'avais essayé d'utiliser mysql++ et C++ mais problème de linkage. QQn a t'il une idée, je commence à en être à court.
 
Message édité par vort3x le 18-05-2008 à 22:54:06