mysql_query Select mit Variable

bronco_user

Grünschnabel
Hallo,

mal wieder eigentlich eine einfache Frage. Bin es von Php her anders gewohnt und war überrascht das ich dazu bei google keine Antwort gefunden habe.

ich möchte in einem
Code:
mysql_query(&mysql,"SELECT * FROM Tabelle WHERE cat='Meine_Variable'");
haben. Wie zum Teufel bekomme ich die Variable nun da rein? Ich habe alles mögliche was ich von Php her kenne probiert und die verschiedensten Foren durchwühlt aber nix? Ist das wirklich so kompliziert in C++ ?

Ich habe etwas mit dem Platzhalter %s gefunden welches auch nicht wirklich funktioniert hat.
Bin dankbar für jeden Tipp.
 
Was für ein Typ ist deine Variable? Ich gehe mal von einem String aus (std::string, benutz keine char-Arrays, wenn du C++ hast).

std::string strCatalog = "Mein_Katalog";

std::string strQuery = "SELECT * FROM Tabelle WHERE CAT='" + strCatalog + "'";

mysql_query( &mysql, strQuery );
 
Danke für die Antwort!! Eine Frage hätte ich dazu dann doch. Warum keine Char Array? Gibt es da Probleme mit?

Jetzt erhalte ich allerdings eine Fehlermeldung.
cannot convert std::sstring to const char* for Argument 2 int mysq_query(MYSQL*,const char*)
Woran liegt das denn jetzt schon wieder?
 
Zuletzt bearbeitet:
char* bringt einige indirekte potentielle Probleme mit sich. Der std::string ist da einfach leistungsfähiger. Dafür hat man ab und zu diese Hürden, dass gewisse Funktionen einen char*-Parameter erwarten:

Ändere den Aufruf so ab:

mysql_query( &mysql, strQuery.c_str() );

Der std::string hat eine Funktion c_str() die einen const(!) char* zurück gibt. Damit kann man andere Funktionen mit einem char* füttern. Der String darf aber auf keinen Fall über den char* aus c_str() verändert werden!
 
Zurück