Hello,
Nehmen wir mal an, dass zwei User fast gleichzeitig das Skript mit dem Befehl insert ausführen, welchen Wert erhalte ich dann für die id?
zeitliche reihenfolge:
user 1: insert (id=22)
user 2 : insert (id=23)
user 1: mysql_insert_id
Welchen Wert erhalte ich hierfür?
Du erhältst den INT-Anteil der letzten Insert-ID auf deiner Connection, also von User 1. Da dieser Anteil (22) eindeutig kleiner als MAXINT ist, wird die Antwort richtig sein.
Du solltest Dir gleich eine eigene Funktion schreiben, die das SQL-Statement "SELECT LAST_INSERT_ID();" benutzt.
Wenn eine Funktion einen Fehler oder eine bekannte erhebliche Einschränkung besitzt, wie dies bei mysql_insert_id() der Fall ist, sollte man sie gleich durch die bessere Lösung ersetztn.
Und denke immer daran, dass Du auch 0 zurückbekommen kannst. das bedeutet dann, dass gar kein Satz eingefügt wurde.
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen