Foros del Web » Programando para Internet » PHP »

Programar un campo UUID con PHP

Estas en el tema de Programar un campo UUID con PHP en el foro de PHP en Foros del Web. Saludos a todos. Les planteo este tema porque necesito algunas ideas para programar un procedimiento en PHP que me permita calcular un valor UUID para ...
  #1 (permalink)  
Antiguo 02/09/2011, 21:45
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 37
Pregunta Programar un campo UUID con PHP

Saludos a todos. Les planteo este tema porque necesito algunas ideas para programar un procedimiento en PHP que me permita calcular un valor UUID para insertar en el campo llave de una tabla. El procedimiento debe generar un código único que no coincida con ninguno de los que ya estên en la tabla. Como se puede hacer algo así? Gracias.
  #2 (permalink)  
Antiguo 03/09/2011, 01:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 226
Antigüedad: 15 años
Puntos: 19
Respuesta: Programar un campo UUID con PHP

¿Y porqué no lo haces con un autoincrementable en la tabla?
__________________
Mi blog: magdkudama.com

Mi clase de validación de datos: magdkudama.com/validation
  #3 (permalink)  
Antiguo 03/09/2011, 18:52
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 37
Respuesta: Programar un campo UUID con PHP

Cita:
Iniciado por GrupoC Ver Mensaje
¿Y porqué no lo haces con un autoincrementable en la tabla?
Saludos. Es una exigencia de mi cliente. No quiere campos autonuméricos en las tablas y me pide que haga las llaves con un UUID. Yo he implementado un algoritmo muy básico pero me gustaría explorar variantes para seleccionar la mas eficiente. Gracias.
  #4 (permalink)  
Antiguo 04/09/2011, 04:35
 
Fecha de Ingreso: noviembre-2009
Mensajes: 226
Antigüedad: 15 años
Puntos: 19
Respuesta: Programar un campo UUID con PHP

Selecciona el MAX(id) de la tabla y sumale 1...

Si no existe MAX(id) (la primera vez), asignale 1

Saludos!
__________________
Mi blog: magdkudama.com

Mi clase de validación de datos: magdkudama.com/validation
  #5 (permalink)  
Antiguo 04/09/2011, 05:58
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Programar un campo UUID con PHP

Que tal jorgelpadronb,

Te dejo un par de referencias, una implementacion que no se que tan buena sea..., pero por lo menos menciona el RFC y un paquete de PECL http://www.shapeshifter.se/2008/09/2...rator-for-php/ y al parecer hay una extensión(php5-uuid), en php.net hay ejemplos de wrapper's a la misma http://www.php.net/manual/es/function.uniqid.php#104166

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 04/09/2011, 18:12
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 37
Respuesta: Programar un campo UUID con PHP

Saludos a todos. Gracias por sus consejos. Gracias masterpuppet por las referencias. Revisé los links y los bajé. Pasa que el autor del artículo propone toda una clase para generar UUID. En realidad lo que yo quiero es un procedimiento simple para incorporar a mi propia clase de manejo de datos. Yo he creado este que muestro, que simula el funcionamiento de un campo autonumérico. Lo probé y no falla. Funciona bien rápido, a pesar de que no tiene un algoritmo muy elaborado. Lo dejo para que lo revisen y me digan como se puede optimizar más, aunque en última instancia, este funciona bien. Realmente yo no veo ninguna diferencia entre esto y un autonumérico, pero si el cliente lo quiere así, así va. Yo entro como referencia inicial el SQL y el nombre del campo que va a funcionar como UUID, luego extraigo todo el campo a un array y lo escaneo con un incremento numérico, buscando el primer valor numérico disponible y lo genero como resultado. Revísenlo a ver si se puede optimizar mas. Gracias.

function CalcUUID($SQL,$CampoUUID){
if($this->Con){
if($this->Bdt){
if($sqlrst=$this->EjecSQL($SQL)){
$i=0;
while($row=mysql_fetch_array($sqlrst)){
$i++;
$IDs[$i]=$row[$CampoUUID];
}
if($i>0){
$Tnum=0;
do{
$Tnum++;
$Disp=true;
foreach($IDs as $elm){
if($elm==$Tnum){
$Disp=false;
break;
}
next($IDs);
}
}while(!$Disp);
return $Tnum;
}else{
return 1;
}
}else{
return 1;
}
}
}
}
  #7 (permalink)  
Antiguo 10/05/2012, 08:45
 
Fecha de Ingreso: mayo-2012
Ubicación: cienfuegos
Mensajes: 1
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Programar un campo UUID con PHP

depende de cómo lo quieras hacer si lo quieres hacer en php revisa esto:

http://stackoverflow.com/questions/2040240/php-function-to-generate-v4-uuid
http://www.php.net/manual/en/function.uniqid.php#94959

lo puedes hacer tambien si tienes una version de mysql 5.5 o superior con la funcion UUID:
http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html#function_uuid

yo usando esta consulta lo hice y me funciona bien, el campo del id debe ser un char 36

$query="INSERT INTO `bd`.`tbl` (`idComentarios`, `comentarios`)
VALUES (UUID() , '".$_POST['comentarios']."');";

espero te sirva de ayuda

Última edición por agattorno; 10/05/2012 a las 09:11

Etiquetas: tabla, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:43.