chaya56
Messages postés4Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention19 août 2010
-
18 juin 2007 à 15:47
chaya56
Messages postés4Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention19 août 2010
-
20 juin 2007 à 08:43
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 de la requete.
Actuellement j'ai ecrit ce code afin de saisir la requete et l'envoyer mais j'obtient a chaque fois le message d'erreur ci dessous :
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é....
//execution de la requete
if (mysql_query(sock,rrequete)) cout <<"echec de la requete, motif : \n" << mysql_error(sock) << "\n";
else
{
cout << "requete faite !";
}
message renvoyé par le programme :
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 requete MYSQL ne prendrait elle pas par hasard unqiuement la premiere case de ma chaine de caractere? rrequete[0] ?