Lulinda: MySQL/PHP: Update Feldwert zurückgeben lassen?

Hallo,

ich habe eine MySQL-Datenbank. In einer Tabelle gibt es das Feld sumVotes, ein INT Feld.

Mittels PHP/MySQL erhöhe ich nun den Wert des Feldes:

UPDATE votes SET sumVotes = sumVotes + 1 WHERE....

Ich möchte mir nun gerne den neuen Wert von sumVotes zurückgeben lassen, ohne eine neue Abfrage auf die Datenbank starten zu müssen. Also nach dem Motto, satt mysql_insert_id() sowas wie mysql_update_value().

Ich möchte schlichtweg sicher gehen, dass die Zahl, die ich per neuer Abfrage "SELECT sumVotes FROM ..." zurück bekäme auch zu genau diesem Update gehört...

Gibt es sowas in PHP/MySQL???

Es bedankt sich
Lulinda

  1. Hallo Lulinda,

    Ich möchte mir nun gerne den neuen Wert von sumVotes zurückgeben lassen, ohne eine neue Abfrage auf die Datenbank starten zu müssen. Also nach dem Motto, satt mysql_insert_id() sowas wie mysql_update_value().

    Gibt es sowas in PHP/MySQL?

    Soweit mir bekannt, nein. Die MySQL-Doku zu Update besagt, dass UPDATE die Anzahl der tatsächlich betroffenen Datensätze zurückliefert, nicht irgendwelche geänderten Werte. Für andere SQL-Dialekte gilt Ähnliches.

    Stell Dir vor, Du aktualisierst eine Tabelle mit vielen Einträgen, z.B. eine Artikeltabelle mit Hunderttausenden von Artikeln. Die Änderung ist eine Preiserhöhung, die je nach Kategorie unterschiedlich ausfällt. Die mir bekannten SQL-Dialekte liefern die Anzahl der Datensätze zurück, eine sehr kleine Datenmenge. Du hättest gern die geänderten Daten, eine riesige Datenmenge. Die Rückgabe von UPDATE ist somit vernünftig und logisch. Das was Du haben willst, wird seltener gewünscht und ist mit einer weiteren Abfrage leicht zu erledigen.

    Also einfach eine weitere Abfrage absetzen, auch wenn Du das ursprünglich nicht wolltest.

    Freundliche Grüße

    Vinzenz