MYSQL Query Problem bei mehrfachem aufruf
-
Moin,
ich versuche gerade vergebens meine Daten aus einer Tabelle auszulesen. Die Datenbank besteht aus mehrere Tabellen diese will ich einfach hintereinander wech auslesen.
Ich habe leider mein orignal Script auf der Arbeit vergessen
aber es sieht so in der art aus:
//MYSQL Verbinden MYSQL *my; /* Handle initialisieren */ my = mysql_init(NULL); if(my == NULL) { fprintf(stderr, " Initialisierung fehlgeschlagen\n"); return EXIT_SUCCESS; } mysql_real_connect ( my, /* Zeiger auf MYSQL-Handler */ "127.0.0.1", /* Host-Name */ "root", /* User-Name */ "xxxx", /* Passwort für user_name */ "xxxx", /* Name der Datenbank */ 0, /* Port (default=0) */ NULL, /* Socket (default=NULL) */ 0 /* keine Flags */ ); //MYSQL Aufruf char statement[512] ="SELECT * FROM `Z1` WHERE 1"; mysql_real_query(my, statement, strlen(statement)); MYSQL_RES *result = mysql_store_result(my); int num_fields = mysql_num_fields(result); MYSQL_ROW row; row = mysql_fetch_row(result);
Das Funktioniert auch danach sotiere ich per While Schleife die Daten in die Array.
Aber wenn ich jetzt diesen aufruf://MYSQL Aufruf char statement_1[512] ="SELECT * FROM `Z2` WHERE 1"; mysql_real_query(my, statement_1, strlen(statement_1)); MYSQL_RES *result_1 = mysql_store_result(my); int num_fields_1 = mysql_num_fields(result_1); MYSQL_ROW row_1; row_1 = mysql_fetch_row(result_1);
Wenn ich gleich danach den Code noch mal einsetzte natürlich mit neuen row result usw Variablen, aber mit dem gleichn Handle(my), bekomme ich einen fehler zurüch der Sytax des SQL wäre falsch?!
Ist auch so wenn ich den Sytax der ersten Anfrage kopieren
Warum ist das so? Darf man nicht 2 mal hinter einander Anfragen????
Wäre Super wenn mir da jemand ne Tip geben könnte
Lars
-
So hier mein original Code:
//MYSQL Verbinden //Handle initialisieren my = mysql_init(NULL); if(my == NULL) { fprintf(stderr, " Initialisierung fehlgeschlagen\n"); return EXIT_SUCCESS; } mysql_real_connect ( my, /* Zeiger auf MYSQL-Handler */ "127.0.0.1", /* Host-Name */ "root", /* User-Name */ "000", /* Passwort für user_name */ "000", /* Name der Datenbank */ 0, /* Port (default=0) */ NULL, /* Socket (default=NULL) */ 0 /* keine Flags */ ); ///////////////////////MYSQL Aufruf Tabelle Leistungsdaten //Aufruf der Leistungsdaten char aufruf[512] ="SELECT * FROM `Leistungsvorgabe` WHERE 1"; mysql_real_query(my, aufruf, strlen(aufruf)); MYSQL_RES *result = mysql_store_result(my); int i; int num_fields = mysql_num_fields(result); MYSQL_ROW row; //Daten Arrays float Datum[100]; int Uhrzeit[100]; float Leistung[100]; i=0; //Aus der Tabelle in die Arrays while ((row = mysql_fetch_row(result))) { unsigned long *lengths; lengths = mysql_fetch_lengths(result); //Char zu Float Datum[i] = atof(row[1]); Leistung[i] = atof(row[3]); //Char zu int Uhrzeit[i] = atoi(row[2]); i++; } //Anzahl Datensätze speichern int Daten_L = i; ////////////////////////////////////////////////////////// ///////////////////////MYSQL Aufruf Tabelle Leistungsdaten //Aufruf der Zählerdaten char aufruf2[512] ="SELECT * FROM `Leistungsvorgabe` WHERE 1"; err = mysql_real_query(my, aufruf, strlen(aufruf) > 0); if (err > 0) { break; } MYSQL_RES *result2 = mysql_store_result(my); int num_fields2 = mysql_num_fields(result2); MYSQL_ROW row2; //Daten Arrays float Bezug[100]; int Addr[100]; float Liefer[100]; // i=0; //Aus der Tabelle in die Arrays //while ((row2 = mysql_fetch_row(result2))) //{ //unsigned long *lengths2; //lengths2 = mysql_fetch_lengths(result2); //Char zu Float //Bezug[i] = atof(row[2]); //Liefer[i] = atof(row[3]); //Char zu int //Addr[i] = atoi(row[1]); //i++; //} //Anzahl Datensätze speichern // int Zaehler_L = i; ///////////////////////////////////////////////////////
Und da bekomm ich die Meldung das der Syntax einen fehler hat
-
Athlonxp schrieb:
Und da bekomm ich die Meldung das der Syntax einen fehler hat
Wann kommt wo welche Fehlermeldung?
Bitte den genauen Wortlaut.Wenn der Compiler meckert bist du hier richtig.
Wenn die Meldung von MySQL kommt sollte das Datenbankenunterforum mehr Hilfe bieten.Das Beispiel ist nicht compilierbar, da die Hälfte fehlt.
Erstell mal ein vollständiges minimales Programm, bei dem der Fehler gerade noch autritt.In Zeile 11-18 nutzt du den Blockkomentar, obwohl du nur den Rest der Zeile kommentierst und in Zeile 76-94 hast du aus jeder Zeile einen Zeilenkommentar gemacht