Umsteigerfrage: "Dynamisches" SQL-Statement in C++



  • Hallo community,

    bisher habe ich nur php-Erfahrung und daher scheitere ich momentan an dem folgenden Problem: Ich frage bisher in PHP Dinge ab wie "SELECT * FROM x WHERE y = '".$somevalue."'"; Dabei ist somevalue immer unterschiedlich und wird meist im Skript vorher ermittelt, wie z.B. eine user_id. Nun meine Frage: wie geht so etwas in C/C++? Ich bin schon soweit, dass ich auf die MySQL-DB komme und auslesen und ausgeben kann. Nur wie baue ich da Statements zusammen?

    Ich brauche z.B. sowas hier:

    char query_a[] = "SELECT schiff_vorhanden_typ, schiff_vorhanden_status 
                         FROM   sh_schiffe_vorhanden
                         WHERE  schiff_vorhanden_user_id = ";
       char query_b = user_id // das Problem!
       char query_c = "AND schiff_vorhanden_start_pid = 12"
    
       mysql_query(conn, query);
       res_set = mysql_store_result(conn);
    

    Wie bekomme ich diese chars zusammen? Ich habs schon mit strings versucht, aber die mysql_query und auch die mysql_real_query brauchen ja ein const char. Kann mir hier jemand weiterhelfen?

    Vielen Dank!
    Grüße
    Temruk



  • Setze es per strings zusammen und übergebe sie dann mit <string>.c_str() an die jeweilige Funktion.



  • #include <sstream>
    
    // ...
    
       std::ostringstream ostr;
       ostr << "SELECT schiff_vorhanden_typ, schiff_vorhanden_status
                         FROM   sh_schiffe_vorhanden
                         WHERE  schiff_vorhanden_user_id = ";
       ostr << user_id;
       ostr << "AND schiff_vorhanden_start_pid = 12";
    
       mysql_query(conn, ostr.str().c_str());  // ostr in const char
    


  • Ganz herzlichen Dank für die schnelle und kompetente Hilfe 🙂


Anmelden zum Antworten