#26 Le 24/01/2013, à 18:29
- mauribilis
Re : connection BDD Mysql dans code C
gcc -I/usr/include -lmysqlclient -o test_mysql test_mysql.c
Hors ligne
#27 Le 24/01/2013, à 18:42
- telliam
Re : connection BDD Mysql dans code C
rajoute -lmysql
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#28 Le 24/01/2013, à 19:11
- mauribilis
Re : connection BDD Mysql dans code C
gcc -I/usr/include -lmysqlclient -lmysql -o test_mysql test_mysql.c
erreur :
test_mysql.c: In function ‘main’:
test_mysql.c:17:26: attention : initialization makes integer from pointer without a cast [enabled by default]
/usr/bin/ld: cannot find -lmysql
collect2: ld a retourné 1 code d'état d'exécution
Hors ligne
#29 Le 24/01/2013, à 20:05
- telliam
Re : connection BDD Mysql dans code C
rajoute : -L/usr/lib/mysql
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#30 Le 24/01/2013, à 20:34
- mauribilis
Re : connection BDD Mysql dans code C
test_mysql.c: In function ‘main’:
test_mysql.c:17:26: attention : initialization makes integer from pointer without a cast [enabled by default]
/usr/bin/ld: cannot find -lmysql
collect2: ld a retourné 1 code d'état d'exécution
Hors ligne
#31 Le 24/01/2013, à 21:08
- telliam
Re : connection BDD Mysql dans code C
vire le -lmysql
c quoi la ligne de code a la ligne 17?
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#32 Le 24/01/2013, à 21:14
- mauribilis
Re : connection BDD Mysql dans code C
int etat_activee = "etat_activee";
Hors ligne
#33 Le 24/01/2013, à 21:14
- mauribilis
Re : connection BDD Mysql dans code C
erreur toujours pareil en ayant viré -lmysql
Hors ligne
#34 Le 24/01/2013, à 21:20
- telliam
Re : connection BDD Mysql dans code C
int etat_activee = "etat_activee";
il y a un pb dans ton code
avec cette ligne tu assignes a un entier une chaine de caracteres.
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#35 Le 26/01/2013, à 14:22
- mauribilis
Re : connection BDD Mysql dans code C
erreur : /tmp/cc8dj0sW.o: In function `main':
test_mysql.c:(.text+0x32): undefined reference to `mysql_init'
test_mysql.c:(.text+0x4b): undefined reference to `mysql_options'
test_mysql.c:(.text+0x91): undefined reference to `mysql_real_connect'
test_mysql.c:(.text+0x104): undefined reference to `mysql_query'
test_mysql.c:(.text+0x113): undefined reference to `mysql_close'
collect2: ld a retourné 1 code d'état d'exécution
code :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <mysql/mysql.h>
int main(int argc, char **argv)
{
//Déclaration de l'objet de type MYSQL
MYSQL mysql;
//Initialisation de MySQL
mysql_init(&mysql);
//Options de connexion
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
char * etat_activee = "etat_activee";
//Si la connexion réussie...
if(mysql_real_connect(&mysql,"localhost","root","password","composant_live",0,NULL,0))
{
//On déclare un tableau de char pour y stocker la requete
char requete[150] = "";
//On stock la requete dans notre tableau de char
sprintf(requete, "INSERT INTO ballon VALUES('', '1')", etat_activee);
//On execute la requete
mysql_query(&mysql, requete);
//Fermeture de MySQL
mysql_close(&mysql);
}
else
{
printf("Une erreur s'est produite lors de la connexion a la BDD!");
}
return 0;
}
Hors ligne
#36 Le 26/01/2013, à 15:16
- telliam
Re : connection BDD Mysql dans code C
Redonne la ligne de compilation stp?
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#37 Le 27/01/2013, à 19:28
- mauribilis
Re : connection BDD Mysql dans code C
gcc -I/usr/include -lmysqlclient -lmysql -L/usr/lib/mysql -o test_mysql test_mysql.c
Hors ligne
#38 Le 27/01/2013, à 20:17
- telliam
Re : connection BDD Mysql dans code C
est ce que libmysqlclient.so est bien sous /usr/lib/mysql ?
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#39 Le 27/01/2013, à 20:43
- eiger
Re : connection BDD Mysql dans code C
Et comme ci-dessous, ça donne quoi ?
gcc -I/usr/include -L/usr/lib/mysql -o test_mysql test_mysql.c -lmysqlclient -lmysql
Hors ligne
#40 Le 28/01/2013, à 08:58
- Melrock
Re : connection BDD Mysql dans code C
int etat_activee = "etat_activee";
Tu ne peux pas écrire une chaîne de caractères dans un "int"
En plus, tu ne t'en sert pas par la suite : elle n'est pas utilisée par ton sprintf.
Qu'est-ce que tu veux obtenir, comme requête ?
(ne mélangeons pas, cette erreur là n'a rien à voir avec les erreur de compilation "undefined reference to `mysql_init'" etc.)
Tout problème a sa solution, donc s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#41 Le 24/02/2013, à 21:52
- mauribilis
Re : connection BDD Mysql dans code C
désolé de ne plus avoir suivie le topic depuis plusieurs semaines (beaucoup de boulot) j'ai recommence à zéro un code qui marche :
#include <mysql.h>
#include <stdio.h>
main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "password";
char *database = "composant_live";
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
}
if (mysql_query(conn, "SELECT etat FROM composant WHERE id LIKE '1'")) {
fprintf(stderr, "%s\n", mysql_error(conn));
}
res = mysql_use_result(conn);
printf("Etat :\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s °C\n", row[0]);
char s_Mail[] = "echo row[0] | mail -s \"Rapport Journalier du système\" destinatire@domaine.com -- -f expediteur@domaine.com";
system(s_Mail);
mysql_free_result(res);
mysql_close(conn);
}
le code trouve une valeur dans la bdd l'affiche puis l'envoie par mail, mais l'ennuie c'est que row[0] contient l'information que je veux envoyer par mail, mais quand je met row[0] après echo pour l'envoie du mail, le massage reçue par le destinataire affiche row[0] en clair mais pas sa valeur cela doit être un problème de variable comment faire ?
merci d'avance
Dernière modification par mauribilis (Le 24/02/2013, à 21:52)
Hors ligne