mysql_affected_rows () gibt 0 für die UPDATE-Anweisung zurück, selbst wenn tatsächlich ein Update stattfindet

Ich versuche, die Anzahl der betroffenen Zeilen in eine einfache mysql Abfrage aktualisieren. Jedoch wenn ich diesen code unter, PHP mysql_affected_rows() immer gleich 0 ist. Egal ob foo=1 bereits (in dem Fall, dass die Funktion sollte richtig return 0, da keine Zeilen geändert wurden), oder wenn foo derzeit gleich einige andere integer (in dem Fall, dass die Funktion zurückgeben sollte 1).

$updateQuery = "UPDATE myTable SET foo=1 WHERE bar=2";
mysql_query($updateQuery);
if (mysql_affected_rows() > 0) {
    echo "affected!";
}
else {
    echo "not affected"; //always prints not affected
}

Die UPDATE-Anweisung selbst arbeiten. Die INT wird geändert in meiner Datenbank. Ich habe auch überprüft, dass die Datenbank-Verbindung nicht geschlossen wird, vorher oder etwas funky. Halten Sie im Verstand, mysql_affected_rows nicht unbedingt verlangen, dass Sie zum bestehen einer Verbindung Verbindungs-Kennung, obwohl ich versucht habe, das zu.

Details über die Funktion: mysql_affected_rows

Irgendwelche Ideen?

Kommentar zu dem Problem
sind Sie sicher, dass der Datensatz aktualisiert wird? Stellen Sie sicher, dass Sie foo gleich auf etwas anderes als 1, bevor Sie den test ausführen. Kommentarautor: northpole
Durch Zufall konnte Ihren Seite zweimal aufgerufen werden, wie aufgrund einer rewrite-Regel vielleicht? Dies würde dazu führen, die Daten werden aktualisiert, das erste mal, und dann nicht das zweite mal, wenn Sie die endgültige Ausgabe... Würde nicht Schaden, zu prüfen, Ihre web-server-logs. Kommentarautor: Michael Berkowski
hinzufügen auf, was @Michael sagte, statt echo versuchen, indem die("betroffene"); , kann man es an die Arbeit, bevor die Doppel neu schreiben, wenn es das ist, was passiert. Kommentarautor: Henesnarfel
Ahhhh... du wirst es nicht glauben, aber die Seite war tatsächlich be-ten mal in Folge über einen AJAX call und ich war nur auf der Suche auf den Rückruf aus dem letzten Aufruf. Das war ein blöder Zug. Was für ein Weg, um zu starten, die auf Stack Overflow, nicht wahr? 🙂 Vielen Dank für Ihre Hilfe! Kommentarautor: Alex Moore
@Alex, stellen Sie sicher, Sie setzen Sie in Ihrer Lösung und beschreiben Sie das problem mit, wie Sie es fest, so dass andere es nutzen können. Froh, dass du das problem gefunden. Kommentarautor: northpole

InformationsquelleAutor der Frage Alex Moore | 2012-02-22

Schreibe einen Kommentar