10

重複の可能性:
MysqlSelectEnum値

私はで列を設定しましたMysql

タイプ:ENUM

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

DBからこれらの値を取得しようとしています。

同じ質問の別の投稿を見つけましたが、コードが機能しませんでした

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

私はタイプTextInstedを取得しますENUM

4

1 に答える 1

9

からの情報を解析する必要がありますinformation_schemacolumnsテーブル -

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-applicationでこの文字列を解析します。

于 2012-08-28T08:28:21.503 に答える