Blog de Promineo Studios http://promineostudios.com es Diseño y Desarrollo Web, Tecnologías Web, efectos visuales y mucho más MySQL + PHP: Recuperar valores de un campo ENUM http://promineostudios.com/blog/articulo/mysql-php-recuperar-valores-de-un-campo-enum vie, 18 sep 2009 13:02:00 GMT Yoné Rocha http://promineostudios.com/blog/articulo/mysql-php-recuperar-valores-de-un-campo-enum Entre los distintos tipos de datos que puede manejar MySQL se encuentran las enumeraciones, definidas con la palabra clave enum. Una lista de enumeradores, como se denomina un enum, no es más que un conjunto de constantes con nombre que definimos en la estructura de nuestra base de datos.

Si has usado un enum en un campo de una tabla, seguro que has querido extraer todos los valores que componen la lista de enumeradores y, posiblemente, no has sabido como hacerlo. He aquí la solución usando PHP:

//Asumo que ya estamos conectados a la base de datos
//Consultamos todos los posibles valores de la columna ENUM
$consulta = $this->db->prepare('SHOW COLUMNS FROM nombreTabla LIKE "nombreCampoEnum"');
$consulta->execute();
//Obtenemos los resultados de la consulta
$array = $consulta->fetch(PDO::FETCH_ASSOC);
//expresión regular que obtiene los valores de enum
$array = explode("','",preg_replace("/(enum|set)\('(.+?)'\)/","\",$array['Type']));
print_r($array);

La clave de todo está en la línea en que llamamos a la función explode(). Mediante una expresión regular analizamos la variable $array y extraemos los valores del enum.

P.D: Para los más despistados... Uso para la consulta a la base de datos PHP Data Objects.

 

 

]]>