Frage zu SQL-Befehl



  • Hallo Leute!

    Ich hoffe mal, dass ihr mir weiterhelfen könnt. Ich hab ein Problem, von dem ich nicht weiß, wie ich es lösen soll. Also mein Programm liest von einer CSV-Datei immer nur ein bestimmtes Wort aus und soll es in die DB eintragen. Dieses bestimmte Wort ermittle ich so:

    while(fgets(buffer, LINE_SIZE, datei) != NULL) {
    	word = mystrtok(buffer, gelesene_Kommas);
             for(i = 0; word != NULL; i++) {
            	    if (i == 0) {	
                     break;
                 }
                 word = mystrtok(NULL, gelesene_Kommas);
            }
    }
    

    Ich gehe mit diesem Code die CSV-Datei immer Zeile für Zeile durch und lese das Wort in den Puffer, das vor dem Komma kommt. In diesem Fall ist es jedes Wort vor dem ersten Komma (daher auch i == 0). Wenn ich allerdings jetzt meinen SQL-Befehl anwende, trägt er mir immer nur das letzte Wort in jede Zeile der DB-Tabelle ein. So sieht der Code aus:

    while(fgets(buffer, LINE_SIZE, datei) != NULL) {
    	word = mystrtok(buffer, gelesene_Kommas);
             for(i = 0; word != NULL; i++) {
            	if (i == 0) {
                    	sprintf(sqlSub_Type, "UPDATE test SET SUB_TYPE = '%s'", word));
                            mysql_query(conn, sqlSub_Type);
                            break;
                    }
                    word = mystrtok(NULL, gelesene_Kommas);
            }
    }
    

    Mein Problem, dass er immer nur das letzte Wort einträgt ist mir auch klar warum. Er trägt eigentlich immer alle Wort in eine Zeile ein, aber die werden ja dann überschrieben und dann steht nur das letzte Wort drin. Wie kann ich aber immer nur das Wort, was aktuell aus der Zeile gelesen wird in die DB schreiben? Habt ihr da nen Plan? Ich kann mich auch an nichts in der DB-Tabelle orientieren. Also kann ich auch keine WHERE Klausel einfügen! Bitte helft mir, ich bin verzweifelt!



  • INSERT statt UPDATE?


Anmelden zum Antworten