hi Struppi,
http://www.linux-magazin.de/Artikel/ausgabe/2001/08/mysql/mysql.html
Irgendwie verstehe ich nicht, warum du so einen Aufwand betreibst.
Es sind 2 unabhängige Dinge die ich hier betrachte.
1. Transaktionskonzept
2. Mehfachpostingsperre
Du kannst die entsprechende myISAM Tablle locken und dann die nächste freie ID suchen ud eintragen, dann kann erst ein gleichzeitiger Prozß darauf zugreifen und wird eine andere ID erzeugen.
Das wäre ein Workaround zu 1. Und eine Alternative zum Transaktionskonzept. Aber wenn ich eine Engine hab, die Transaktionen unterstütz, komm ich drauf zurück. Es vereinfacht den Programmieraufwand.
Btw., so kritisch ist mit dem Transaktionskonzept nun auch wieder nicht, siehe Artikel weiter oben.
Soweit ich das PRinzip bisher verstanden habe ist locktable überflüssig.
... das ist dann der Workaround zu 2.
Und doppeleinträge lassen sich einfach vermeiden, in dem man überprüft ob die Eingabe in dem thread mit der letzten Eingabe übereinstimmt.
Genau das mache ich mit der locktable, in der art, dass jedem POST-Formular ein zufälliger string mitgegeben wird. Für eine Sperrzeit (unkritisch, ich nehme 2 sekunden weil in der zeit meistens die Umleitung erfolgte...) darf ein POST mit dieser initid nur einmal kommen.
Viele Grüße, Rolf
Zum Testen: http://rolfrost.de/cgi-bin/openforum.cgi
Versuch mal mit Doppelklicks und Mehrfachklicks was zu posten. wenn die Pflichfelder ausgefüllt wurden, sollte nur ein Post ankommen.