Как я могу получить перечисление возможных значений в базе данных 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
9
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