如何使用 php 获取 MySQL 数据库中的枚举可能值? [重复]

问题描述 投票:0回答:1

我在

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

php mysql sql enums
1个回答
9
投票

您应该从

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 应用程序中解析此字符串。

© www.soinside.com 2019 - 2024. All rights reserved.