Requête avec paramètres - MySQL - C++
Bonjour,
Je suis vraiment désespéré, je suis connecté à ma base mysql à partir d'un programme en C++ ( grâce à l'api de mysql) sur borland C++ builder 6.
Seulement lorsue je veux interroger la base de donnée à partir d'une requête avec un ou plusieurs paramètres. J'arrive à faire des requêtes simple grâce a mysql_query. Mais je n'arrive pas a passer de paramètres à ma commande.
Exemple:
Code:
mysql_query(mySQL, "select * from Joueur where Pseudo = 'BOB'") ;
<-- cette requete me retourne les infos du joueur BOB
Problème:
Code:
1 2 3
| string NomDuJoueur;
NomDuJoueur="BOB";
mysql_query(mySQL, "select * from Joueur where Pseudo = " NomDuJoueur); |
Voila j'espere avoir des réponses
Merci à tous ceux qui se pencheront sur mon problème
j ai testé ce code , çà fonctionne
Salut
tout d abord , ajoutes un panel1 , il permet de verifier l etat de la connection avant d envoyer la requete
ensuite as tu ajouté libmySQL.dll et libmySQL.lib au projet ?
enfin as tu modifié mysql.h et l as tu mis en include ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Mon_ip = 127.0.0.1 ;
AnsiString Mon_user = moi ;
AnsiString Mon_pass = 123456 ;
AnsiString Ma_base = mabdd ;
MYSQL *mySQL; mySQL = mysql_init(NULL);
if (!mysql_real_connect(mySQL, Mon_ip.c_str() , Mon_user.c_str(), Mon_pass.c_str() ,Ma_base.c_str(), 3306, NULL, 0))
{ Panel1->Color=clRed; Panel1->Caption="Echec"; } // la connection a échoué
else { Panel1->Caption="Ok"; // la connection a réussi
ListBox2->Items->Clear();
AnsiString NomDuJoueur;
MYSQL_RES *myRES; MYSQL_ROW myROW;
NomDuJoueur="Clyde";
AnsiString aStr ;
AnsiString S = "select * from Joueur where Pseudo = \"" + NomDuJoueur + "\"";
if ( !mysql_query( mySQL, S.c_str() ) )
{ myRES = mysql_store_result(mySQL);
if (myRES)
{
for(unsigned int i = 0; i < myRES->row_count; i++)
{
myROW = mysql_fetch_row(myRES);
for(unsigned int j = 0; j < mysql_num_fields(myRES); j++)
{ aStr = myROW[j]; ListBox2->Items->Add(aStr); }
}
}
}
mysql_free_result(myRES);
}
} |
telecharges le projet ici pour builder 6
http://dl.free.fr/b9qezNJA3/bcbreponsesql.zip
Solution mais autre problème lol
Merci pour vos réponses.
J'ai bien inclus tout les .lib et mis les .dll au bonne endroit.
J'arrive à me connecter à ma base.
J'arrive aussi à faire des requetes avec des parametres mais cela ne fonctionne pas lorsque j'ai plus de 2 paramètres :aie:
Le code:
Code:
1 2 3 4 5 6 7 8 9 10
| std::string pseudo="Goliate";
std::string pass="123456";
std::string mail="aha@aha.com";
std::string com="test";
sprintf(requete,"INSERT INTO Joueur (PSEUDO, PASSWORD, EMAIL, COMMENTAIRE, nbpartieJouee, NbPartieGagnee, NbPoint) VALUES ('%s','%s','%s','%s','0','0','0')", pseudo, password, mail, comm);
std::cout << requete << std::endl;
mysql_query(mySQL, requete); |
Mon premier paramètre fonctionne correctement mais les autres se transforme en caractères spéciaux pas du tout attendus 8O
Si quelqu'un a une solution :)