2016-03-24 3 views
0
while ((row = mysql_fetch_row(res)) != NULL) { 

    sprintf(statement, "DELETE FROM `outgoing` WHERE `outgoing`.`id`=%s", row[0]); 

    if (mysql_query(conn, statement)) { 
     fprintf(stderr, "%s\n", mysql_error(conn));  
    } 
} 

Ich erhalte Commands out of sync; you can't run this command now Fehler, wie eine Abfrage in c ohne mysql_free_result (res) laufen

+1

Ihr einzelnes Zitat ist nicht das richtige einzelne Anführungsstrich. Es muss sein '. –

+0

Zitate sind korrekt. –

+0

Bitte poste mehr Code, insbesondere zeige die erste mysql_query. –

Antwort

-1

Die korrekte Anweisung lautet:

sprintf(statement, "DELETE FROM outgoing WHERE outgoing.id='%s'", row[0]); 

Beachten Sie die korrekte Zitat um die %s und beachten Sie, dass die andere Sachen brauchen KEINE Anführungszeichen, da sie Namen sind, keine Werte.

+0

Ich muss zwei Abfragen ausführen, eine ist innerhalb der Schleife –

+0

Also? Führen Sie einfach die Abfrage und die Anweisung 'sprintf' in der Schleife aus. Und ich weiß nicht, was Sie holen, aber vielleicht müssen Sie ein Feld in Ihrer Zeile [0] ansprechen. Und möglicherweise interferieren die Abfragen miteinander, wenn Sie von derselben Tabelle abrufen, aus der Sie löschen. Wie auch immer, die obige Aussage ist korrekt. Zeigen Sie mehr Code, damit wir den Fehler genauer verstehen. –

0

Sie verwenden wahrscheinlich mysql_use_result() Funktion, um Ergebnisse von MySQL-Datenbank zu erhalten. In diesem Fall werden die Zeilen einzeln an den Client gesendet, wenn mysql_fetch_row() aufgerufen wird. Bis alle Zeilen abgerufen werden, Datenbank-Handle „gesperrt“:

Wenn mysql_use_result() verwenden, können Sie mysql_fetch_row() bis ein NULL-Wert zurückgegeben ausführen muss, sonst werden die nicht abgerufene Zeilen als Teil des Ergebnisses ausgegeben wurden für Ihre nächste Abfrage. Die C-API gibt den Fehler Commands out of sync; you can't run this command now , wenn Sie dies vergessen!

Versuchen Sie mysql_store_result() als Ersatz. Diese Funktion ruft alle Zeilen auf einmal ab.

+0

Ich muss eine andere Abfrage innerhalb dieser während sonst nichts ausführen –

Verwandte Themen