Mailinglisten-Archive |
Hallo Armin, > ---------- > Von: Armin Steiner[SMTP:steiner_(at)_dynamic-webpages.de] > > Szenario: > Eingabe Formular, mittels dem man Kundendaten eingeben > soll. Mittles Abfrage wird überprüft, ob der Eintrag schon > vorhanden ist oder nicht (wenn ja: Fehler, wenn nein: OK) > Wenn man aber von zwei Rechnern im WindowsNetzwerk > gleichzeitig auf die DB zugreift, wird dieser Überprüfungs- > mechanismus ausgehebelt. Dann sind doppelte Einträge problemlos > möglich --- GRMBLE-GRRR!!! > > Klar. Das ist kein Bug von MySQL, sondern vom Datenbank-Programmierer. Du musst in einer Multiuser-Umgebung IMMER damit rechnen, daß sich 2 oder mehr user in die Quere kommen. Für obiges Szenario musst du : 1. lock for write setzen 2. returncode beachten (--> lock tatsaechlich gesetzt ??) 3. wenn nein zurueck zu 1 (eventuell Versuche zaehlen, um abzubrechen wenn > 10 lock-Versuche) 4. lesen in der DB ob Eintrag schon vorhanden 5. entscheiden was tun 6. eventuell datensatz schreiben 7. returncode beachten (--> datensatz tatsaechlich geschrieben ??) 8. lock freigeben. Nur so ist das, was du machen moechtest, SICHER moeglich. Viele Gruesse, Mathias --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive