Как получить все значения enum'а????

PHP
В принципе задача тривальна, есть база данных, в базе данных есть таблица, в таблице есть поле ENUM, требуется получить массив значений вышеуказанного поля (почти русская народная сказка получается).

Для решения задачи был использован фреймворк нашей разработки, поэтому вношу пояснения:
Функция a_select — возвращает ассоциативный массив, который является результатом запроса $query.

Ну и собственно решение:

function get_enum($table_name, $column_name){
    $query = "SHOW COLUMNS FROM `".$table_name."` LIKE '".$column_name."'";        
    $enum_array = $this->a_select($query);
    if(!empty($enum_array)){
        $enum_array = str_replace('enum(', '', $enum_array[$column_name]);
        $enum_array = str_replace(')', '', $enum_array);
        $enum_array = str_replace("'", '', $enum_array);
        $enum_array = explode(',', $enum_array);
            
        return $enum_array;
    }else{
        return false;
    }
}
  • +1
  • 22 августа 2012, 16:19
  • Maugli

Комментарии (1)

RSS свернуть / развернуть
А ещё можно так… На выходе получим массив значений или пустой массив).
function get_enum($table_name, $column_name) {
        $sql = "SHOW COLUMNS FROM `".$table_name."` LIKE '".$column_name."'";
        $qres = $this->a_select($sql);
        $pattern = "/\'(\w+)\'/";
        preg_match_all($pattern, $qres['Type'], $qres);
        if (!empty($qres[1])) {
            return $qres[1];
        } else {
            return array();
        }//if
}
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
comments powered by Disqus