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?
die("betroffene");
, kann man es an die Arbeit, bevor die Doppel neu schreiben, wenn es das ist, was passiert. InformationsquelleAutor der Frage Alex Moore | 2012-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neueren Versionen von MySQL sind klug genug, um zu sehen, wenn die änderung erfolgt ist oder nicht. Können sagen, Sie feuerte eine UPDATE-Anweisung:
Können sagen, wenn der Wert der Spalte ist schon 1; dann keine update-Prozess so mysql_affected_rows() wird return 0; else if Spalte faul hatte einen anderen Wert eher als 1, dann wird 1 zurückgegeben. Es gibt keine anderen Möglichkeiten, außer für menschliche Fehler.
InformationsquelleAutor der Antwort Mrigesh Raj Shrestha
Haben Sie versucht, mit Hilfe der MySQL-Funktion
ROW_COUNT
direkt?Weitere Informationen über die Verwendung von
ROW_COUNT
und die anderen MySQL-Funktionen gibt es auf: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_row-countInformationsquelleAutor der Antwort steveukx
mysqli_affected_rows erfordert, dass Sie übergeben den Verweis auf die Datenbank-Verbindung als parameter nur, statt den Verweis auf die mysqli-query. zB.
NICHT
InformationsquelleAutor der Antwort DLastCodeBender
Versuchen Sie, eine Verbindung wie diese:
und rufen Sie dann, wie diese
InformationsquelleAutor der Antwort Stefan
Ich glaube, Sie brauchen, um zu versuchen, etwas anderes im update dann foo=1. Etwas Total anders ist, dann Sie sehen, ist es Update oder nicht, ohne wenn-Schleife. wenn es dann funktioniert, wenn-Schleife funktionieren sollte.
InformationsquelleAutor der Antwort Marko Vasic
Funktioniert dieses?
InformationsquelleAutor der Antwort David
Die folgenden Hinweise hilfreich für Sie sein werden,
mysql_affected_rows() gibt
+0: eine Zeile nicht aktualisiert oder eingefügt (wahrscheinlich, weil die Zeile schon existierte,
aber Nein-Feld Werte die auch wirklich geändert wurden, während der AKTUALISIERUNG).
+1: eine Zeile wurde eingefügt
+2: eine Zeile wurde aktualisiert
-1: im Falle eines Fehlers.
mysqli betroffenen Zeilen Hinweise für Entwickler
InformationsquelleAutor der Antwort Gladson Samuel S
War Meinem Dache !
Ich war gerade dabei zu sagen, um zu überprüfen, ob die Funktion aufgerufen wird, viele Male !
Nur ein wenig Beratung:
versuchen Sie es mit isset () und POST /GET oder so ähnlich;
Hoffe, es war klar und hilfreich, Ciao 🙂
InformationsquelleAutor der Antwort Innogen