mysql_affected_rows auch bei "update..."?
Sascha
- php
Hallo Ihrs :-)
ich habe eine kleine Frage. Kann mir die MySQL-DB bei einem 'UPDATE' auch sagen wieviele 'ROWS affected' sind?
Also bei DELETE funktioniert es ja mit PHP bzw. mysql_affected_rows(), ich benötige die Anzahl wieviele Zeilen bzw. Datensätze von diesem update betroffen sind.
vielen dank
Sascha
$update_query =
mysql_query("UPDATE hostdb_interface
SET hostID = '$hostid', hwaddress = '$hwaddress', ipaddressID= '$ipaddressid'
WHERE interfaceID = '$interfaceid';")or die(mysql_error());
$update_affrow= mysql_affected_rows();
Moin,
hast du es denn schon mal porbiert. Imho solltest du mit mysql_affected_rows richtig liegen.
http://www.php.net/manual/de/function.mysql-affected-rows.php
Beachte, dass bei einem "Update", bei dem der alte Wert dem neuen entspricht, dieser Datensatz nicht mitgezählt wird.
Schönen Gruß
Moin,
hast du es denn schon mal porbiert. Imho solltest du mit mysql_affected_rows richtig liegen.
Moin moin,
jup, habe es probiert... und da habe ich das Problem, wenn "UPDATE keine Spalten aktualisiert, bei denen der neue dem alten Wert entpspricht. Das kann dazu führen, dass mysql_affected_rows() nicht die tatsächliche Anzahl der betroffenen Zeilen liefert, sondern nur die, die wörtlich durch die Anfrage betroffen sind. "
gibt es denn irgendeine Möglichkeit die 'betroffenen' Felder ob keins, eins oder mehrer zu zählen?
also be mir wird auf jedenfall immer ein Feld aktualisiert
UPDATE hostdb_interface
SET hostID = '$hostid', hwaddress = '$hwaddress', ipaddressID= '$ipaddressid' WHERE interfaceID = '$interfaceid';
und zwar hwaddress...
Moin,
Das ist wohl eher eine philosophische Frage: ist ein Update, das zu keiner Änderung führt, wirklich ein Update?
gibt es denn irgendeine Möglichkeit die 'betroffenen' Felder ob keins, eins oder mehrer zu zählen?
Du könntest statt des Updates vorher ein SELECT machen, mit der gleichen WHERE-Klausel. mysql_num_rows() liefert dir dann die Datensätze, die (potentiell) vom Update betroffen sind. Oder halt SELECT count(*) WHERE ...
Moin,
Das ist wohl eher eine philosophische Frage: ist ein Update, das zu keiner Änderung führt, wirklich ein Update?
Du könntest statt des Updates vorher ein SELECT machen, mit der gleichen WHERE-Klausel. mysql_num_rows() liefert dir dann die Datensätze, die (potentiell) vom Update betroffen sind. Oder halt SELECT count(*) WHERE ...
bissel philosphie gehört dazu;-) na den ganzen Umstand zu erläutern wäre bissel viel... das hat alles mit dem Abfangen von fehlern zu tun ..aber egal.
mit dem "SELECT COUNT..." bin ich auch darauf gekommen sieht zwar nicht so schön aus ;-) aber es funktioniert.
Danke für Deine Hilfe
viele Grüße aus dem hohen Norden
Sascha