(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей таблице
Возвращает метаданные столбца результирующей таблицы в виде ассоциативного массива. Индексация столбцов начинается с 0.
Некоторые драйверы PDO могут не реализуют функцию PDOStatement::getColumnMeta(), поскольку она является необязательной. Однако все драйверы PDO, указанные в руководстве, реализуют эту функцию.
columnИндекс (начиная с 0) столбца результирующего набора.
Возвращает ассоциативный массив, содержащий следующие значения метаданных:
| Имя | Значение |
|---|---|
native_type |
Внутренний тип PHP, используемый для представления значения столбца. |
driver:decl_type |
Тип SQL, используемый для представления значения столбца в базе данных. Если значение столбца результирующей таблицы было возвращено из функции, PDOStatement::getColumnMeta() не будет определять этот тип. |
flags |
Какие-либо флаги, установленные для столбца. |
name |
Имя этого столбца, возвращаемое базой данных. |
table |
Имя таблицы этого столбца, возвращаемое базой данных. |
len |
Размер поля столбца. Как правило, для типов, отличных от чисел с
плавающей точкой, это значение равно -1.
|
precision |
Числовая точность этого столбца. Как правило, для типов,
отличных от чисел с плавающей точкой, это значение
равно 0.
|
pdo_type |
Тип PDO значения столбца в виде одной из констант
PDO::PARAM_*.
|
Возвращает false в случаях, когда указанного столбца нет в результирующей
таблице, а также если не существует самого результирующего набора.
Пример #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)
}