2012-08-28 2 views
9

Mögliche Duplizieren:
Mysql Select Enum ValuesWie kann ich enum mögliche Werte in einer MySQL Datenbank mit PHP bekommen?

Ich habe eine coloumn in Mysql einzurichten:

Typ: ENUM

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

Ich versuche, diese Werte aus der DB retrive:

fand ich eine andere Stelle mit der gleichen Frage, aber mein Code nicht funktioniert

$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; 

ich Typ Text Insted von ENUM

+1

[http://stackoverflow.com/questions/4644220/mysql-select-enum-values] Dies ist keine neue Frage, werfen Sie einen Blick. [1]: http://stackoverflow.com/questions/4644220/mysql-select-enum-values ​​ – tijs

Antwort

8

Sie sollten Informationen von information_schema analysieren. columns Tisch -

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

... weitere Abfrage -

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'; 

wird es so etwas wie dieses - enum('01','02','03'). Parsen Sie diese Zeichenfolge in der PHP-Anwendung.

+0

danke !!! funktioniert wie ein Charm – devmonster

+0

Vergessen Sie nicht, den Wert "" hinzuzufügen, der implizit in jedem Enum in MySQL vorhanden ist. Oder "NULL", wenn das Feld nullfähig ist. – aib

Verwandte Themen