Generando una clave única
Cuando necesitas una clave única para identificar a un objeto, a veces recurres a utilizar valores uid, pero el valor de por si no te garantiza que sea unico,
Puedes usar esto en PHP:
[php]$key = md5(uniqid(mt_rand(), false));[/php]
El valor generado sera unico, pero ¿piensas que nunca se repetira?, yo no lo creo.
Para estos casos debes verificar en tu base de datos:
[php]
function generateKey(){//Generate a unique key
do{
$key = md5(uniqid(mt_rand(), false));
}
while(validateKeyn($key));
return $key;
}
function validateKey($key){//check the DB
$query = "SELECT theKey FROM Table WHERE theKey =’".trim($key)."’ LIMIT 1";
$result=mysql_query($query);
if (mysql_num_rows($result)) return true;
else return false;
}
[/php]
Tambipen imagino que necesitaras crear una especie de número de serie, para lo cual puedes usar esta interesante función:
[php]
// Genera Guid
function NewGuid() {
$s = strtoupper(md5(uniqid(rand(),true)));
$guidText =
substr($s,0,8) . ‘-‘ .
substr($s,8,4) . ‘-‘ .
substr($s,12,4). ‘-‘ .
substr($s,16,4). ‘-‘ .
substr($s,20);
return $guidText;
}
// End Generate Guid
$Guid = NewGuid();
[/php]
Esto devolverá algo como: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX al estilo id unico (unique identifier), (8 letras)-(4 letras)-(4 letras)-(4 letras)-(12 letras).