MySQL Results verarbeiten.



  • HI!

    Ich spiele gerade etwas mit MySQL und C++;
    Wie kann ich ein result richtig verarbeiten? so dass ich nach spalten gehen kann.

    Bis jetzt mach ichs so:

    mysql_query(mysql_connect, "SELECT * FROM `test_tabelle`");
    
    result = mysql_store_result(mysql_connect);
    mysql_r = mysql_fetch_row(result);
    affected = mysql_affected_rows(mysql_connect);
    
     for (int x= 0; x <= affected; x++)
        {
            field = mysql_r[2];
            cout  << field << endl;
        }
    

    Allerdings kann ich so nur eine Zeile auslesen, wenns mehr sind wird "*" zurück gegeben.

    Was mach ich falsch?

    (Das bsp. aus den FAQ's will auch ned so recht)



  • HI!

    Sorry da stimmt was ncih der Code sieht so aus:

    mysql_query(mysql_connect, "SELECT * FROM `test_tabelle`"); 
    
    result = mysql_store_result(mysql_connect); 
    mysql_r = mysql_fetch_row(result); 
    affected = mysql_affected_rows(mysql_connect); 
    
     for (int x= 0; x <= affected; x++) 
        { 
            field = mysql_r[x]; 
            cout  << field << endl; 
        }
    




  • Wie ich dieses Wort liebe (leite auch ne community),
    aber leider funktiert (wie ich allerdings schon geschrieben habe) dieses
    Beispiel nicht wiklich:

    for (UINT colNum = 1; colNum <= nrFields(); colNum++) 
        { 
            field[colNum] = fetchbuffer[colNum - 1]; 
        }
    

    1. UINT - ich kenn die nötigen header dafür nich (egal int geht auch)
    2. nrFields() gibts nicht - ok hab ich durch mysql_num_fields() ersetzt
    ABER
    das gibt mir auch nicht das zurück was ich brauche, damit kann ich ja auch
    nur eine reihe auslesen...



  • Ich versteh dein Problem nicht, du rufst einfach mysql_fetch_row auf, bist NULL zurück gegeben wird. Der Name ist doch schon der intuitiv und der Rest steht im Manual...



  • Ist schon ewig her seit ich den Source gepostet habe. Die Funktionen sind aus meiner Wrapperklasse.
    nrfield() gibt nur die Anzahl Spalten aus der Ergebnismenge zurück.

    UINT fields = mysql_num_fields(result);


Anmelden zum Antworten