Mixins - это концепция в программировании, в которой класс предоставляет функциональные возможности, но не предназначен для использования для создания экземпляра. Основная цель Mixins - предоставить функциональные возможности, которые являются автономными, и было бы лучше, если бы сами микстины не имели наследования с другими миксинами, а также избегали состояния. В таких языках, как Ruby, существует некоторая поддержка прямого языка, но для Python этого нет. Тем не менее, вы могли использовать многоуровневое наследование для выполнения функций, предоставляемых в Python.
Я смотрел это видео http://www.youtube.com/watch?v=v_uKI2NOLEM для понимания основ миксинов. Для новичков очень полезно понять основы миксинов и их работу, а также проблемы, с которыми вы можете столкнуться при их реализации.
Википедия по-прежнему остается лучшей: http: //en.wikipedia .org / вики / Mixin
ВЫБЕРИТЕ ПОДСТРОКУ (COLUMN_TYPE, 6, ДЛИНА (COLUMN_TYPE) - 6) AS val ОТ information_schema. СТОЛБЦЫ, ГДЕ TABLE_NAME = 'статьи' И COLUMN_NAME = 'состояние'
не работало бы на перечисление ('' ', X' 'XX')
Если вы хотите определить все возможные значения для столбца ENUM, используйте SHOW COLUMNS FROM tbl_name LIKE enum_col и проанализируйте определение ENUM в столбце типа вывода.
Вам нужно что-то вроде:
$sql = "SHOW COLUMNS FROM `table` LIKE 'column'";
$result = $db->query($sql);
$row = $result->fetchRow();
$type = $row['Type'];
preg_match('/enum\((.*)\)$/', $type, $matches);
$vals = explode(',', $matches[1]);
Это даст вам указанные значения. MySQL всегда возвращает их в одинарных кавычках. Одиночная кавычка в значении заменяется одиночной кавычкой. Вероятно, вы можете безопасно вызвать trim ($ val, "'")
для каждого элемента массива. Вам нужно преобразовать ''
только в '
.
Следующее будет возвращать элементы массива $ trimmedval без кавычек:
$trimmedvals = array();
foreach($vals as $key => $value) {
$value=trim($value, "'");
$trimmedvals[] = $value;
}
Вы можете получить значения, запросив его следующим образом:
SELECT SUBSTRING(COLUMN_TYPE,5)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA='databasename'
AND TABLE_NAME='tablename'
AND COLUMN_NAME='columnname'
Оттуда вам нужно будет преобразовать его в массив:
Я просто хочу добавить к тому, что говорит jasonbar при запросе, например:
SHOW columns FROM table
Если вы получите результат в виде массива это будет выглядеть так:
array([0],[Field],[1],[Type],[2],[Null],[3],[Key],[4],[Default],[5],[Extra])
Где [n] и [text] дают одно и то же значение.
На самом деле не сказано ни в одной из найденных мною документации. Просто хорошо знать, что еще есть.