2012-08-28 20 views
9

Olası Çoğalt: Ne Mysql kolon gibi kurdunuz
Mysql Select Enum ValuesPhp kullanarak bir MySQL veritabanında olası değerleri nasıl alabilirim?

:

türü: ENUM

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

DB'den bu değerleri alınamadı çalışıyorum:

Ben aynı soruyla başka yazı buldum ama benim kod alıyorum

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

işe yaramadı tip Text Insted ENUM

+1

[http://stackoverflow.com/questions/4644220/mysql-select-enum-values] Bu yeni bir soru değil, bir göz atın. [1]: http://stackoverflow.com/questions/4644220/mysql-select-enum-values ​​ – tijs

cevap

8

arasında information_schema'dan bilgi ayrıştırmalısınız. columns tablo -

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

... başka sorgu - enum('01','02','03') -

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

böyle bir şey olacak. Bu dizeyi php-uygulamasında ayrıştırın.

+0

teşekkürler !!! bir cazibeye benziyor – devmonster

+0

MySQL'deki her bir enum içinde gizli olarak bulunan '' ''değerini eklemeyi unutmayın. Veya alan null ise, "NULL". – aib

İlgili konular