Seite 1 von 2

mysql-fehler beim anlegen eines neues users

Verfasst: 05.05.2004 17:17
von ollih
hallo zusammen,

ich habe phpBB in meine Site integriert und Benutzer von meiner Tabelle in die forum_users importiert. Wenn sich nun ein neuer Benutzer registriert, bekommt er die Meldung "Duplicate key for entry 1". Ich habe festgestellt, dass die user_id nicht hochgezählt wird, sondern das dort die Zahl 8388607 eingetragen wird.

Um das Problem einzugrenzen, habe ich einen neuen Benutzer über phpmyadmin angelegt (also ohne meine Programmierung). Siehe da, es wird wieder diese bestimmte Zahl eingetragen (8388607) - scheinbar vom DB-System. Jeder neue Datensatz bekommt diese Id !!??

Probiere ich dasgleiche lokal auf meinem Rechner, klappt es prima - nur auf meiner Site im Internet nicht.

Kann mir jemand helfen ???

Verfasst: 05.05.2004 17:27
von PhilippK
Hast du evtl. 'nen Standardwert für die user_id eingestellt?

Gruß, Philipp

Verfasst: 05.05.2004 17:31
von ollih
nein, das habe ich nicht - meine feldatrribute sehen wie folgt aus:

user_id mediumint(8) NOT NULL auto_increment,

Verfasst: 05.05.2004 18:10
von ollih
es scheint daran gelegen zu haben, dass der user anonymus mit der id -1 das problem verursacht hat....

habe ihn entfernt und jetzt läuft es !!

kann mir jemand sagen, ob die löschung dieses users negative auswirkungen auf die funktionalität des forums hat ???

Verfasst: 05.05.2004 18:31
von andreasOymann
ja, füge ihn auf jeden Fall wieder ein!

Verfasst: 06.05.2004 12:58
von ollih
muss die user_id von anonymus zwingend -1 sein ??

Verfasst: 06.05.2004 16:08
von andreasOymann
ja!

Verfasst: 06.05.2004 20:53
von ollih
die mysql-version meines hosters untersützt leider keinen negativen wert...

Prinzipiell macht es aber auch keinen Sinn, einen negative Zahl als ID zu haben. Ein Primärschlüssel hat ja meistens ein AutoIncrement und sollte als Atrribut UNSIGNED haben, damit man den Bereich des Integer vergrössernn kann. UNSIGNED bewirkt aber, daß keine negativen Zahlen verwendet werden. Daher sollte man - wenn überhaupt - den Wert 0 oder 1 nehmen, aber NIE eine negative Zahl, als ID.

Verfasst: 06.05.2004 22:38
von PhilippK
ollih hat geschrieben:die mysql-version meines hosters untersützt leider keinen negativen wert...
Welche MySQL-Version soll denn das sein? :o

Es gibt kein Verbot von negativen Primärschlüsseln (Access z.B. beherrscht das auch einwandfrei) - man darf das Feld halt nicht als UNSIGNED definieren.
Das der Anonymous eine etwas aus dem Schema herausfallende ID hat, hat ja auch seinen Grund: es handelt sich nicht um einen Standard-User.

Gruß, Philipp

Verfasst: 08.05.2004 13:45
von ollih
habe den user anonymus wieder eingefügt - muss dieser zwingend die user_id -1 haben ??

ich glaube zu wissen, warum dieser "fehler" auftritt - die user_id hat die option auto_increment...