Partage
  • Partager sur Facebook
  • Partager sur Twitter

MySQL

Petit prob avec l'API MySQL

    24 août 2007 à 21:06:29

    Bonjours/Bonsoir,
    J'essai de faire un log qui me permet d'afficher le contenu d'une table de mon site, le probleme c'est que j'obtient cette erreur :
    1. 28 C:\Dev-Cpp\main.cpp cannot convert `char**' to `char***' in assignment 
    2. 38 C:\Dev-Cpp\main.cpp conditional expression between distinct pointer types `char**' and `const char*' lacks a cast


    Et voici le code :
    1. void insert(char titre, char news)
    2. {
    3.                 //Déclaration du pointeur de structure de type MySQL
    4.                 MYSQL mysql;
    5.                 //Initialisation de MySQL
    6.                 mysql_init(&mysql);
    7.                 // Option de connection
    8.                 mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
    9.                 // Connection
    10.                 mysql_real_connect(&mysql,"www.webia.fr","woeth","******","woeth",0,NULL,0);
    11.                 //On déclare un tableau de char pour y stocker la requete
    12.                 char requete[150] = "";
    13.                 //On stock la requete dans notre tableau de char
    14.                 sprintf(requete, "INSERT INTO news VALUES('', '%s', '%s')", titre, news);
    15.                 //On execute la requete
    16.                 mysql_query(&mysql, requete);
    17.                 //Fermeture de MySQL
    18.                 mysql_close(&mysql);
    19. }
    20. void see_all()
    21. {
    22.       //Déclaration du pointeur de structure de type MySQL
    23.       MYSQL mysql;
    24.       //Initialisation de MySQL
    25.       mysql_init(&mysql);
    26.       // Option de connection
    27.       mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
    28.       // Connection
    29.       mysql_real_connect(&mysql,"www.webia.fr","woeth","*****","woeth",0,NULL,0);
    30.       // On selectionne les données
    31.       mysql_query(&mysql, "SELECT * FROM news ORDER BY id DESC");
    32.       //Déclaration des pointeurs de structure
    33.       MYSQL_RES *result = NULL;
    34.       MYSQL_ROW row;
    35.       unsigned int i = 0;
    36.       unsigned int num_champs = 0;
    37.       //On met le jeu de résultat dans le pointeur result
    38.       result = mysql_use_result(&mysql);
    39.       //On récupère le nombre de champs
    40.       num_champs = mysql_num_fields(result);
    41.       //On récupère le nombre de champs
    42.       while (row = mysql_fetch_row(result))
    43.       {
    44.         //On déclare un pointeur long non signé pour y stocker la taille des valeurs
    45.         unsigned long *lengths;
    46.         //On stocke cette taille dans le pointeur
    47.         lengths = mysql_fetch_lengths(result);
    48.         //On fait une boucle pour avoir la valeur de chaque champs
    49.         for(i = 0; i < num_champs; i++)
    50.         {
    51.             //On ecrit toutes les valeurs
    52.             printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL");
    53.         }
    54.             printf("\n");
    55.       }
    56.       //Libération du jeu de résultat
    57.       mysql_free_result(result);
    58.       //Fermeture de MySQL
    59.       mysql_close(&mysql);      
    60.       //cout << "This Function Is Disabled" << endl;
    61. }
    62. void delet(char value, char champ, char table)
    63. {
    64.       // Char vide qui va contenir la requette MySQL
    65.       char req[50] = "";
    66.       //Déclaration du pointeur de structure de type MySQL
    67.       MYSQL mysql;
    68.       //Initialisation de MySQL
    69.       mysql_init(&mysql);
    70.       // Option de connection
    71.       mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
    72.       // Connection
    73.       mysql_real_connect(&mysql,"www.webia.fr","woeth","******","woeth",0,NULL,0);
    74.       // Requette Sql
    75.       sprintf(req, "DELETE FROM %s WHERE %s=%s", table, champ, value);
    76.       mysql_query(&mysql, req);
    77.       // On ferme la connection
    78.       mysql_close(&mysql);
    79. }


    C'est au niveau du while que sa bloque :
    1. while (row = mysql_fetch_row(result))


    J'utilise le tuto de The BasheR pour l'API MySQL

    Merci d'avance pour votre aide.

    Je vien de trouver :
    1. MYSQL_ROW *row = NULL; =>  MYSQL_ROW row;

    Mais maintenant :
    1. [Linker error] undefined reference to `mysql_init@4' 
    2.   [Linker error] undefined reference to `mysql_options@12' 
    3.   [Linker error] undefined reference to `mysql_real_connect@32' 
    4.   [Linker error] undefined reference to `mysql_query@8' 
    5.   [Linker error] undefined reference to `mysql_close@4' 
    6.   [Linker error] undefined reference to `mysql_init@4' 
    7.   [Linker error] undefined reference to `mysql_options@12' 
    8.   [Linker error] undefined reference to `mysql_real_connect@32' 
    9.   [Linker error] undefined reference to `mysql_query@8' 
    10.   [Linker error] undefined reference to `mysql_use_result@4' 
    11.   [Linker error] undefined reference to `mysql_num_fields@4' 
    12.   [Linker error] undefined reference to `mysql_fetch_row@4' 
    13.   [Linker error] undefined reference to `mysql_fetch_lengths@4' 
    14.   [Linker error] undefined reference to `mysql_free_result@4' 
    15.   [Linker error] undefined reference to `mysql_close@4' 
    16.   [Linker error] undefined reference to `mysql_init@4' 
    17.   [Linker error] undefined reference to `mysql_options@12' 
    18.   [Linker error] undefined reference to `mysql_real_connect@32' 
    19.   [Linker error] undefined reference to `mysql_query@8' 
    20.   [Linker error] undefined reference to `mysql_close@4' 
    21.   ld returned 1 exit status

    Et la je comprend pas pourquoi sa me fait sa ?

    J'ai trouvé, erreur de config de dev c++ ^^
    • Partager sur Facebook
    • Partager sur Twitter

    MySQL

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown