Jörg Reinholz: Lösung ist:

Beitrag lesen

Moin!

uniqid() ist aber nicht eindeutig! Ich habe Code in meiner Software, die aufgrund von Nicht-Eindeutigkeit von uniqid ()

Beschreibung von php.net: uniqueid() ... "Gibt eine eindeutige ID mit Präfix zurück, die auf der aktuellen Zeit in Mikrosekunden basiert."

Könntest Du bitte auf die, sehr wahrscheinlich vom Problem des TO doch recht ordentlich abweichenden Umstände eingehen, unter denen es Dir gelungen ist, mit unique_id() nicht unique ids zu erzeugen?

13 Stellen hex sind 6,5 Bbyte sind 54 bit, sind also 2^54 Millisekunden. Wiederholung ergo frühestens nach

  • 18014398509481984 Millisekunden
  • 18014398509481 Sekunden
  • 300239975158 Minuten
  • 5003999585 Stunden
  • 208499982 Tagen
  • 570800 Jahren
  • 142710 Rechnergenerationen (a 4 Jahre)
  • 22833 mesnchl. Generationen (a 25 Jahre)

Du müsstest ergo mit passender Software auf einem Mehrprozessorsystem die ids erzeugt haben oder auf sehr vielen Rechnern uniqueid() gestartet haben, wodurch es zu dem Umstand kam, dass die Uhrzeit jeweils bis auf die Millisekunde stimmte. Nicht ganz undenkbar.

Oder lief da was unter Windows? Kann das real microtime()?

Jörg Reinholz