Se connecter / S'enregistrer
Votre question

Probleme mysql en c

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
22 Janvier 2010 11:41:07

Bonjour,

Voila je souhaite insérer dans une base de donné déjà créer des infos. Voici mon code:
#include <stdio.h>
#include <stdlib.h>
#include <winsock.h>
#include <MYSQL/mysql.h>

int main(int argc, char *argv[])
{
int km = kilometre(trame1);

//Déclaration du pointeur de structure de type MYSQL
MYSQL mysql;
//Initialisation de MySQL
mysql_init(&mysql);
//Options de connexion
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");

//Si la connexion réussie...
if(mysql_real_connect(&mysql,"localhost","root","","projet",0,NULL,0))
{
// mysql_query(&mysql,"INSERT INTO info VALUES('12345','142000','15')");


mysql_query(&mysql,"INSERT INTO info VALUES('&vin','&km','&niv_car')");

//Fermeture de MySQL
mysql_close(&mysql);

}
else //Sinon ...
{
printf("Une erreur s'est produite lors de la connexion à la BDD!");
}



system("PAUSE");
return 0;
}

La ligne en gras me pose problème, je voulait insérer dans ma table info le contenu de 3 variables de type int mais je c'est pas comment faire, j'ai essayer comme ca:
"INSERT INTO info VALUES('&vin','&km','&niv_car')"); j ecrit 0,0,0
"INSERT INTO info VALUES('vin','km','niv_car')");
Je ne sait plus comment faire pouvez vous m'aider svp ?

Autres pages sur : probleme mysql

23 Janvier 2010 12:02:49

salut,

Revois les bases du c :)  .: pointeurs .......


mysql_query(&mysql,"INSERT INTO info VALUES('&vin','&km','&niv_car')" );
Essaye avec
mysql_query(&mysql,"INSERT INTO info VALUES('1','2','3')" ); ca devrait marcher.
Ton mysql_query, tu lui passe une chaine de caractère pour la requete. Hors tu ne peux pas accéder à une chaine de caractere de cette manière !!!
En c, tu devrais passer par une chaine temporaire, (char buffer[255] ) avec un bon vieux sprintf et le %d des familles !
m
0
l
23 Janvier 2010 12:08:26

test ça:

char req[1024];
sprintf( &req[0], "INSERT INTO info VALUES('%d','%d','%d')", vin, km, niv_car);
mysql_query(&mysql, &req );
m
0
l
Contenus similaires
a b L Programmation
23 Janvier 2010 12:11:57

&req[0] == req ;) 
Sinon, c'est la bonne technique, mais attention au buffer overflow, même si la taille est très grande. ;) 
m
0
l
23 Janvier 2010 12:14:22

Citation :
&req[0] == req

Oups :sarcastic:  , bon c'est samedi matin hein ;) 
m
0
l
23 Janvier 2010 15:05:20

Merci je teste la méthode avec buffer et je vous redit
merci de votre aide
m
0
l
24 Janvier 2010 09:36:44

Merci la méthode avec buffer fonctionne merci de votre aide si rapide
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS