(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей таблице
$column
)Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.
Возвращает метаданные столбца результирующей таблицы в виде ассоциативного массива. Индексация столбцов начинается с 0.
Не все PDO драйверы поддерживают PDOStatement::getColumnMeta().
column
Индекс (начиная с 0) столбца результирующего набора.
Возвращает ассоциативный массив, содержащий следующие значения метаданных:
Имя | Значение |
---|---|
native_type | Внутренний тип PHP, в котором будет представлено значение столбца. |
driver:decl_type | SQL тип в котором значение столбца хранится в базе данных. Если значение столбца результирующей таблицы было возвращено из функции, PDOStatement::getColumnMeta() не будет определять этот тип. |
flags | Какие-либо флаги, установленные для столбца. |
name | Имя столбца в том виде, в котором его вернула СУБД. |
table | Имя таблицы базы данных, содержащей этот столбец. |
len | Размер поля столбца. Как правило, для типов, отличных от чисел с плавающей запятой, это значение равно -1. |
precision | Числовая точность значений этого поля. Как правило, для типов, отличных от чисел с плавающей запятой, это значение равно 0. |
pdo_type | PDO тип значения столбца в виде одной из констант PDO::PARAM_*. |
Возвращает FALSE
в случаях, когда указанного столбца нет в результирующей
таблице, а также если не существует самого результирующего набора.
Версия | Описание |
---|---|
5.2.3 | Поле table |
Пример #1 Извлечение метаданных столбца
В следующем примере показаны результаты извлечения метаданных одного столбца сгенерированного функцией COUNT драйвера PDO_SQLITE.
<?php
$select = $DB->query('SELECT COUNT(*) FROM fruit');
$meta = $select->getColumnMeta(0);
var_dump($meta);
?>
Результат выполнения данного примера:
array(6) { ["native_type"]=> string(7) "integer" ["flags"]=> array(0) { } ["name"]=> string(8) "COUNT(*)" ["len"]=> int(-1) ["precision"]=> int(0) ["pdo_type"]=> int(2) }