Bonjour je suis actuellement en projet.
Je dois créer une api qui contient des fonctions (ecrire et lire) de requête en mysql.
Je voudrais que le programme me demande de rentrer un nom de pseudo et que cela ajoute dans ma bdd.
C'est à ce niveau que je bloque
.
Voici le code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql/mysql.h>
#include "APIV4.h"
MYSQL mysql;
MYSQL mysql_eu;
MYSQL_RES *result = NULL; //Déclaration des pointeurs de structure
MYSQL_ROW row = NULL;
int main(void)
{
int fin;
fin = 0;
//char rquser[100];
while(!fin) //menu
{
int c;
printf("1.Afficher le(s) utilisateur(s)\n"
"2.Ajouter un utilisateur\n"
"3.Quitter\n");
c = getchar();
if(c != '\n' && c != EOF)
{
int d;
while((d = getchar()) != '\n' && d != EOF);
}
switch(c)
{
case '1':
lire_pseudo("");
break;
case '2':
ecrire_pseudo("");
break;
case '3':
printf("\n\n A bientôt !\n\n");
fin = 1;
break;
default:
printf("Choix errone\n");
}
}
return 0;
}
char *lire_pseudo(char *lp)
{
unsigned int u = 0;
unsigned int num_champs = 0;
char rquser[100];
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
if(mysql_real_connect(&mysql,"localhost","log","mdp","projet",0,NULL,0))
{
printf("--------------\n");
printf("|id| |pseudo|\n");
printf("--------------\n");
sprintf(rquser,"SELECT id_utilisateurs, pseudo FROM utilisateurs");
mysql_query(&mysql, rquser);
result = mysql_use_result(&mysql);
num_champs = mysql_num_fields(result); //On récupère le nombre de champs
while (( row = mysql_fetch_row(result)))
{
unsigned long *longueur; //On déclare un pointeur pour y stocker la taille des valeurs
longueur = mysql_fetch_lengths(result);
for(u = 0; u < num_champs; u++) //On fait une boucle pour avoir la valeur de chaque champs
{
printf("[%s] ", row[u]); //On ecrit toutes les valeurs
}
printf("\n\n");
}
}
mysql_close(&mysql);
return 0;
}
char *ecrire_pseudo(char *ep)
{
unsigned int eu = 0;
unsigned int num_champs = 0;
char rqeuser[100];
//char ecriture;
mysql_init(&mysql_eu);
mysql_options(&mysql_eu,MYSQL_READ_DEFAULT_GROUP,"option");
if(mysql_real_connect(&mysql_eu,"localhost","log","mdp","projet",0,NULL,0))
{
printf("Ajouter un pseudo: \n");
scanf("%s",rqeuser);
printf(rqeuser,"INSERT INTO utilisateurs (pseudo) VALUES ('%s')");
mysql_query(&mysql_eu, rqeuser);
//printf(rqeuser,"Vous avez ajouté %s à la base.\n");
result = mysql_use_result(&mysql_eu);
num_champs = mysql_num_fields(result); //On récupère le nombre de champs
while (( row = mysql_fetch_row(result)))
{
unsigned long *lengths; //On déclare un pointeur pour y stocker la taille des valeurs
lengths = mysql_fetch_lengths(result);
for(eu = 0; eu < num_champs; eu++) //On fait une boucle pour avoir la valeur de chaque champs
{
printf("[%s] ", row[eu]); //On ecrit toutes les valeurs
}
printf("\n\n");
}
}
mysql_close(&mysql_eu);
return 0;
}
et mon .h:
#ifndef __APIV4
#define __APIV4
char *lire_pseudo(char *lp);
char *ecrire_pseudo(char *ep);
#endif
Lorsque j'essaye d'ajouter un pseudo, je reçois un core dump comme erreur.
Merci de votre aide!
Message édité le 21 mars 2015 à 17:47:04 par vipera-2