Как я могу получить перечисление возможных значений в базе данных MySQL с помощью php? [дубликат]


Возможный Дубликат:
Mysql Выбирает Значения Перечисления

Я настроил колонку в Mysql:

Тип: ENUM

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

Я пытаюсь восстановить эти значения из базы данных:

Я нашел другое сообщение с тем же вопросом, но мой код не работал

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

Я получаю тип Text Вместо ENUM

Author: Community, 2012-08-28

1 answers

Вы должны анализировать информацию из information_schema.columns таблица -

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

...еще один запрос -

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

Там будет что-то вроде этого - enum('01','02','03'). Проанализируйте эту строку в php-приложении.

 8
Author: Devart, 2012-08-28 08:28:21