2012-08-28 21 views
9

Duplicar posible:
Mysql Select Enum Values¿Cómo puedo obtener los valores posibles enum en una base de datos MySQL usando php?

He creado una de Coloumn en Mysql:

Tipo: ENUM

Length/Values: '01','02','03','04','05','06','07','08','09','10','11','12'

Estoy intentando retrive esos valores de la BD:

encontré otro post con la misma pregunta, pero mi código no funcionó

$type = $mysqli->query("SHOW COLUMNS FROM {$tableName} WHERE Field = 'type'")->fetch_object()->Type; 
     preg_match('/^enum\((.*)\)$/', $type, $matches); 
     foreach(explode(',', $matches[1]) as $value) 
     { 
      $enum[] = trim($value, "'"); 
     } 
     return $enum; 

consigo tipo Text Insted de ENUM

+1

[http://stackoverflow.com/questions/4644220/mysql-select-enum-values] Esta no es una pregunta nueva, eche un vistazo. [1]: http://stackoverflow.com/questions/4644220/mysql-select-enum-values ​​ – tijs

Respuesta

8

Debería analizar información del information_schema. columns mesa -

SELECT 
    column_type 
FROM 
    information_schema.columns 
WHERE 
    table_schema = 'your_schema' AND table_name = 'your_table' AND column_name = 'your_column' 

... otra consulta -

SELECT 
    TRIM(TRAILING ')' FROM TRIM(LEADING '(' FROM TRIM(LEADING 'enum' FROM column_type))) column_type 
FROM 
    information_schema.columns 
WHERE 
    table_schema = 'your_schema' AND table_name = 'your_table' AND column_name = 'your_column'; 

No será algo como esto - enum('01','02','03'). Parse esta cadena en la aplicación php.

+0

gracias !!! funciona como un amuleto – devmonster

+0

No olvides agregar el valor '''' que está implícitamente presente en cada enumeración en MySQL. O 'NULL', si el campo es anulable. – aib

Cuestiones relacionadas