Hi,
ich denke das beste ist es den wert einfach auszulesen, mit php um 1 zu erhöhen und dann einfach wieder in die db zu schreiben!
Nein, das ist nicht das Beste. Das Beste ist, das Auslesen und Erhöhen direkt im Update-Statement durchzuführen.
Bei Deiner Methode kann es zu falschen Ergebnissen kommen:
z.B. durch 2 fast gleichzeitige Requests:
Die Zählspalte enthält den Wert 17.
Für Request 1 wird aus der Datenbank gelesen in eine Variable: x = 17
Für Request 1 wird der Wert erhöht (x = 18);
Für Request 2 wird aus der Datenbank gelesen in eine Variable: x = 17 *)
Für Request 2 wird der Wert erhöht (x = 18);
Für Request 2 wird der Wert in die Datenbank zurückgeschrieben, Zählspalte enthält den Wert 18.
Für Request 1 wird der Wert in die Datenbank zurückgeschrieben, Zählspalte enthält den Wert 18.
*) die Variable hat zwar denselben Namen, aber befindet sich in einer anderen Instanz des Scripts
Mit
UPDATE table SET spalte=spalte+1 WHERE bla="blubb";
wird Auslesen, Erhöhen und Setzen aber "atomar" durchgeführt, d.h. daß keine Effekte wie oben beschrieben auftreten können.
cu,
Andreas
MudGuard? Siehe http://www.Mud-Guard.de/
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.