MySQL-Rowcount bei 'ON DUPLICATE KEY UPDATE'

yesterday´s news

yesterday´s news von leicagirl (photocase.de)

22.5.2012

Der Rückgabewert bei einem INSERT ist 1 und bei einem UPDATE 2. Da kann man sich leicht verzählen.

Bisher habe ich gedacht, 'affected rows' bedeutet 'betroffene Zeilen', aber MySQL hat da einen kleinen Spezialfall parat:

Nach dem Ausführen eines MySQL-Befehls 'INSERT INTO ... ON DUPLICATE KEY UPDATE ...' liefert mysql_affected_rows() im Fall eines Neueintrags 1 zurück, bei einer Aktualisierung 2 (siehe Dokumentation). Summiert man also wie gewohnt die Rückgabewerte kann man zu falschen Ergebnissen kommen.

Andererseits es es natürlich nur so möglich zu unterscheiden, was bei der Ausführung passiert ist.

Gespeichert unter: Programmierung