[libmysql] requete sql sous linux
Bonjour je cherche à faire une fonction qui permet de faire des requete sql (sous mysql) en C. Je précise que je suis sous un environement linux (Fedora6). Comme je dois utilisé le fichier compilé sur un système embarqué, j'emploi un compilateur gcc spécial pour ce système embarqué comme ca je peux développer sur mon pc :D
Voici le code que j'emploi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
#include <stdio.h>
#include <mysql/mysql.h>
#define MYSQL_HOST "127.0.0.1"
#define MYSQL_DB "mabase"
#define MYSQL_LOGIN "root"
#define MYSQL_PASSWD ""
void requete(unsigned char *querry)
{
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;
mysql_init(&mysql);
if (!mysql_connect(&mysql,'127.0.0.1','root','root')) {
return -1;
}
if (mysql_select_db(&mysql,MYSQL_DB)) {
mysql_close(&mysql);
return -1;
}
mysql_query(&mysql,requete);
result = mysql_use_result(&mysql);
while((row = mysql_fetch_row(result))) {
printf("%s",row[1]);
fflush(stdout);
}
mysql_close(&mysql);
return 0;
} |
Il y encore du code dans le programme mais c'est cette partie qui nous intersse.
Avec ca j'obtient comme erreur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
lcd.c: In function `requete':
lcd.c:152: warning: implicit declaration of function `mysql_connect'
lcd.c:152:35: warning: character constant too long for its type
lcd.c:152:47: warning: multi-character character constant
lcd.c:152:54: warning: multi-character character constant
lcd.c:153: warning: `return' with a value, in function returning void
lcd.c:157: warning: `return' with a value, in function returning void
lcd.c:159: warning: passing arg 2 of `mysql_query' from incompatible pointer type
lcd.c:166: warning: `return' with a value, in function returning void
/home/powerdale/usr/local/opt/crosstool/arm-linux/gcc-3.3.4-glibc-2.3.2/bin/../lib/gcc-lib/arm-linux/3.3.4/../../../../arm-linux/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.so when searching for -lmysqlclient
/home/powerdale/usr/local/opt/crosstool/arm-linux/gcc-3.3.4-glibc-2.3.2/bin/../lib/gcc-lib/arm-linux/3.3.4/../../../../arm-linux/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.a when searching for -lmysqlclient
/home/powerdale/usr/local/opt/crosstool/arm-linux/gcc-3.3.4-glibc-2.3.2/bin/../lib/gcc-lib/arm-linux/3.3.4/../../../../arm-linux/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status |
Je compile avec cette ligne de commande :
Code:
1 2
|
./arm-linux-gcc -Wall -o lcd lcd.c -L/usr/lib/mysql -lmysqlclient |
Voila j'aimerai savoir si :
1. le code C est correcte
2. si je fais bien le lien vers les librarie mysql car visiblement il trouve pas mysqlclient
enfin si vous avez d'autres idées sur ce qui pourrait provoquer ce problème elles sont les bienvenue. Je peux aussi donnez plus d'explication si vous en avez besoin.
Merci d'avance
PS: je sais pas si je suis dans le bon forum car ca reprend des compétence de différents forums mais bon je penses que ca se rapproche le plus de celui-ci.