[EMAIL PROTECTED] wrote:

> Hello,
> 
> I want to add a random unique ID to a Mysql table.  Collisions
> are unlikely but possible so to handle those cases I'd like to
> regenerate the random ID until there is no collision and only
> then add my row.  Any suggestions for a newbie as to the right
> way to go about doing this?
> 
> Best,
> 
> Craig
> 
I just wrote up a quick PHP extension that will do what you want. It is on
my website, it is called muniqid, you can get it from the download area.
You can build it as part of PHP or used phpize, configure, make, make
install and create a module.

get it at http://ww.mohawksoft.org

It provides two functions:

muniqid_time(), and muniqid_rand().

muniqid_time() creates a GUID looking string that incorporates, time in
seconds, timer ticks, pid, ip address, and system stats to create an almost
certainly unique key with enough random data to make it impossible to
guess.

A duplicate is only possible within your web site (I guess it could happen
somewhere in the world), if you are using SMP motherboards and both
processors are processing a create ID, at *exactly* the same time (within
resolution of clock ticks) and are running in two threads within the same
process and rand() is isolated between threads and both threads have
processed the same number of IDs. Short of that, pretty impossible.

muniqid_rand() creates a GUID looking string that incorporates a lot of
random data from your machine. It may be less unique than muniqid_time, but
is far more random.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to