Bonjour,
je tiens a prevenir que cela fait 2 ans que je n'ai plus fait de C++ et a l'epoque j'avais un niveau débutant !
Donc ma question :
pour un projet personnel j'essaye de faire un mini client mysql en C++ ds lequel on saisira des requetes a executer sur une bdd préalablement définie, hors j'ai beaucoup de mal a faire passer un CHAR saisie a la mano grace a un CIN ds la fonction : (mysql_query(sock,rrequete)).
si je fait un char * rrequete = "select * from user;" la requete passe correctement.
par contre si je fait un cin >> rrequete ; => le programme compile mais plante a la saisie.
Actuellement j'ai ecrit ce code afin de saisir la requete et l'envoyer mais j'obtiens a chaque fois le message d'erreur ci dessous :
message renvoyé par le programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 string requete ; //Creation d'un string afin de permettre une saisie plus facile cout << "requete ? " ; cin >> requete ; size_t requetesize = requete.size() + 1; //on regarde la taille de la chaine char * rrequete = new char[ requetesize ]; //on crée un char a la taille+1 pour caract de fin de chaine strncpy( rrequete, requete.c_str(), requetesize ); // on copie la string ds le char delete &requete; // on libere de la mémoire cout << requete ; // on controle ce que l'on a rentré....rien ne s'afffiche ... //execution de la requete if (mysql_query(sock,rrequete)) cout <<"echec de la requete, motif : \n" << mysql_error(sock) << "\n"; else { cout << "requete faite !"; }
Le serveur est en ligne
Initialisation de la connexion Ok !
connection ok, sur la bdd : test
requete ? select * from user;
echec de la requete, motif :
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near '' at line 1
Press any key to continue . . .
la mysql_query(sock,rrequete) ne prendrait elle pas par hasard unqiuement la premiere case de ma chaine de caractere? rrequete[0] ?
j'ai l'impression que ma variable rrequette renvoie '' et d'ailleurs on voit bien ds le cout rrequete rien ne s'affiche a l'ecran
Partager