Forum Schwarzes Baden-Württemberg (http://forum.schwarzes-bw.de/wbb231/index.php)
- Schwarzes Reich (http://forum.schwarzes-bw.de/wbb231/board.php?boardid=2)
-- Support (http://forum.schwarzes-bw.de/wbb231/board.php?boardid=23)
--- allgemeiner fehler (http://forum.schwarzes-bw.de/wbb231/thread.php?threadid=1512)


Geschrieben von Cainte am 18.02.2005 um 10:50:

 

Soweit ich mich noch mit MySQL auskenne ist der Fehler einfach ein sogenannter Hick-up... ein schluckauf.

[editiert wegen akutem Schwachsinn .. korrektur siehe näxten Beitrag von Xtra]

@SaschlongTCO

der Debug mode geht an. Meldung wird erstellt. Debug Mode geht wieder aus.



Geschrieben von Xtra am 18.02.2005 um 15:52:

 

Zitat:
Original von Cainte

Soweit ich mich noch mit MySQL auskenne ist der Fehler einfach ein sogenannter Hick-up... ein schluckauf.
Kann daher kommen das beim provider zu viele Datenbank zugriffe gleichzeitig gemacht wurden und der server nicht mehr nach kam und dann einfach diese Meldung bringt die eigtl bedeutet das die Tabelle nicht mehr vorhanden ist....

Tut mir ja leid dir da widersprechen zu myssen mein lieber Cainte, aber das besagt der Fehler nicht im Mindesten. Es ist zwar wirklich ein Hick-up, aber aus einem vollkommen anderem Grund. ID collision.

Der Fehler "SQL Error : 1062 Duplicate entry '893724537' for key 1" besagt, dass versucht wurde einen Datensatz in die Tabelle zu schreiben, dessen index (Anleitung fyr den SQL Server wie die Datensaetze sortiert werden sollten) gleich ist wie die von einem bereits bestehendem Datensatz.
Das ist im Grunde kein Fehler, solange nicht (wie im Fall der searchlist von phpBB) der key das UNIQUE flag hat (eindeutige Identifikationsmoeglichkeit eines Datensatzes, also jeder Key muss anders sein als die anderen).

Wie kann es hierzu kommen?
Nunja, da mysql kein sauberes keyfetching unterstyzt und man daher auf unsaubere Dinge wie "autoincrement" angewiesen ist, kann es vorkommen, dass 2 Personen zur selben Zeit ein posting machen wollen.
Dies fyhrt dann dazu, dass alle Woerter in den postings in die search table eingetragen werden sollen. Wenn das nun 2 Personen gleichzeitig machen, dann kann es vorkommen dass sich die beiden Instanzen von PHP um eine ID "streiten", also dieselbe ID eintragen wollen, es gewinnt derjenige, der ein paar Nanosekunden schneller ist, der andere fliegt mit einem SQL error raus.
Eigentlich haetten die phpBB Leute das per retry umgehen koennen, aber das waere auch nur ein dirty hack.

Bei einem reload(welcher einem erneuten klicken auf absenden gleichkommt) wird das ganze dann nochmal gem8 und da ist dann (hoffentlich) kein anderer mehr dabei das gleichzeitig zu machen.

Dann freut sich phpBB und sagt "danke".

So, dies nur mal eben als ein bissel Tech-Talk.

Greetz
Xtra



Geschrieben von Cainte am 18.02.2005 um 16:09:

 

Danke Xtra :-)

ich kenn mich zwar bissel mit PHP aus aber MySQL is mir zu "true" *gg*



Geschrieben von sarain am 19.02.2005 um 11:13:

 

Ja also bei mir kommts auch immer wenn ich auf Neue Beiträge klicke



Geschrieben von Xtra am 19.02.2005 um 14:38:

 

Das sollte nicht sein.

Evtl. sollte man mal im ACP eine Databasepflege fahren.

Es koennte sein, dass da die ganzen Indizies broken sind.

(phoBB ist ja nett anzusehen aber der code is uargs, ich weiss wovon ich rede, hab das Teil lang genug selbst gehackt und rumgemodded)



Geschrieben von Cainte am 19.02.2005 um 15:14:

 

Das stimmt der Code is heftig... ich bin eher ein wbbBoard Fan *g*



Geschrieben von Saschlong TCO am 20.02.2005 um 17:41:

 

Dadd kostet aber Kohle...
*nachgugg* naja ok, ist bezahlbar.



Geschrieben von Cainte am 21.02.2005 um 11:56:

 

es gibt auch ne gute Gratis Version vom Wbb


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH