Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 24/01/2013, à 19: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, à 19: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, à 20: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, à 21: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, à 21: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, à 22: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, à 22:14

mauribilis

Re : connection BDD Mysql dans code C

int etat_activee = "etat_activee";

Hors ligne

#33 Le 24/01/2013, à 22:14

mauribilis

Re : connection BDD Mysql dans code C

erreur toujours pareil en ayant viré -lmysql

Hors ligne

#34 Le 24/01/2013, à 22:20

telliam

Re : connection BDD Mysql dans code C

mauribilis a écrit :

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, à 15: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, à 16: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, à 20: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, à 21: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, à 21:43

eiger

Re : connection BDD Mysql dans code C

Et comme ci-dessous, ça donne quoi ?

mauribilis a écrit :

gcc -I/usr/include -L/usr/lib/mysql -o test_mysql  test_mysql.c -lmysqlclient -lmysql

Hors ligne

#40 Le 28/01/2013, à 09:58

Melrock

Re : connection BDD Mysql dans code C

mauribilis a écrit :

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, à 22: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, à 22:52)

Hors ligne