Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2173 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Problème de conversion string en const char *

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de conversion string en const char *

n°1629278
wildschwei​n
Posté le 23-10-2007 à 13:20:45  profilanswer
 

Bonjour,
 
Je débute en C++ sous Visual C++ express et j'essaie d'insérer une entrée dans une base MySQL, voici un extrait du code :

Code :
  1. string toto="mavaleur";
  2. mysql_query(mysql, "INSERT INTO matable VALUES('', '"+toto+"', '421')" );


et lors de la compilation j'ai une belle erreur :

Citation :

error C2664: 'mysql_query' : impossible de convertir le paramètre 2 de 'std::basic_string<_Elem,_Traits,_Ax>' en 'const char *'
        with
        [
            _Elem=char,
            _Traits=std::char_traits,
            _Ax=std::allocator
        ]
        Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé


 
Savez-vous ce qui se passe et comment y palier ? Suffit-il juste de transformer le string toto en const char * ? Et si oui comment ?
 
En comptant sur votre aide, merci d'avance

mood
Publicité
Posté le 23-10-2007 à 13:20:45  profilanswer
 

n°1629280
_darkalt3_
Proctopathe
Posté le 23-10-2007 à 13:25:59  profilanswer
 

doc => std::string::c_str


---------------
Töp of the plöp
n°1629301
wildschwei​n
Posté le 23-10-2007 à 13:45:39  profilanswer
 

Merci _darkalt3_,
 
ça commence à venir, j'ai modifié le code avec std::string::c_str et j'obtiens à présent :
 

Code :
  1. string Str="mavaleur";
  2. const char *CstStr2 = Str.c_str ();
  3. mysql_query(mysql, "INSERT INTO matable VALUES('', '"+CstStr2+"', '421')" );


 
Le problème de conversion est résolu mais j'ai en résultat de compilation une autre erreur

Citation :

error C2110: '+' : impossible d'ajouter deux pointeurs


 
Est-il possible en règle général de faire plusieurs concaténation sur la même ligne (comme en php) ou bien doit-on faire une ligne différente à chaque concaténation ? Ou ça vient seulement de mysql_query ?

n°1629317
_darkalt3_
Proctopathe
Posté le 23-10-2007 à 13:58:51  profilanswer
 

cf strcat, et la doc C relative aux chaines de caractères ...


---------------
Töp of the plöp
n°1629336
Taz
bisounours-codeur
Posté le 23-10-2007 à 14:13:40  profilanswer
 

ouah de l'injection SQL ! le pied !
 
osef de strcat
 
('"' + foo + '"').c_str()


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Problème de conversion string en const char *

 

Sujets relatifs
chat : conversion en asynchroneProblème de cookies
probleme de dichotomie sur visual C++Problème requête between
Problème pour générer la DTD de fichiers XML[ALGO] probléme sur un algo
problème de syntaxeProblème de lecture d'un clip dans un clip
probleme avec une video sur ma page[Batch-Xp] Probleme de variable...
Plus de sujets relatifs à : Problème de conversion string en const char *


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR