Moin!
Das möchte ich verhindern, indem ich die Mysql-Tabelle, welche die Bildinformationen enthält, vor dem Update-Befehl sperre.
Ist es richtig, wenn ich mit "LOCK tabelle; UPDATE tabelle; UNLOCK tabelle;" vorgehe?
Nein, ist nicht hilfreich. UPDATE sperrt die Tabelle schon von sich aus, und da du nur genau ein UPDATE hast, kann es schon von daher nicht passieren, dass dir irgendwer dazwischenfunkt.
Das Problem ist deine Logik zur Auswahl "des ersten Besuchers". Sowas ist im Web-Kontext zwingend als konkurrierende Situation zwischen mindestens zwei Requests zu betrachten, d.h. dass teilweise tatsächlich nur einen User hast, der dir das Bild auswählt, ist Zufall, aber nicht der Regelfall.
Wie wählst du das Bild aus? Was tust du, um festzustellen, dass schon ein Bild ausgewählt wurde? Warum kann man pro Tag mehr als ein "das ausgewählte Bild für den Tag" wählen?
- Sven Rautenberg