# WPDB::GET_COL_INFO()
Метод get_col_info()
используется для получения метаданных колонок из последнего запроса в WordPress. Это полезный инструмент для разработчиков, которые работают с базой данных.
## Что такое get_col_info()
?
get_col_info()
— это метод класса wpdb
, который позволяет получить информацию о колонках таблицы, таких как их имя, тип данных и другие характеристики.
### Структура данных
Метод возвращает смешанный тип данных, который может содержать информацию о колонках.
## Синтаксис
Чтобы использовать этот метод, вам нужно сделать следующее:
```php
global $wpdb;
$wpdb->get_col_info( $info_type, $col_offset );
Параметры
-
$info_type
(строка): Тип информации о колонке, которую вы хотите получить. Возможные значения:'name'
— имя колонки'table'
— имя таблицы'def'
— значение по умолчанию'max_length'
— максимальная длина'not_null'
— не может быть пустым'primary_key'
— является ли колонка первичным ключом'multiple_key'
— является ли колонка составным ключом'unique_key'
— является ли колонка уникальным ключом'numeric'
— является ли колонка числовой'blob'
— является ли колонка блобом (бинарным объектом)'type'
— тип данных'unsigned'
— является ли колонка беззнаковой'zerofill'
— дополнена нулями до указанной длины
По умолчанию:
'name'
-
$col_offset
(целое число): Индекс колонки, для которой вы хотите получить информацию.0
: Имя колонки.1
: Таблица, в которой находится колонка.2
: Максимальная длина колонки.3
: Является ли колонка числовой.4
: Тип колонки.
По умолчанию:
-1
Примеры использования
Основной пример
Предположим, у нас есть запрос к базе данных, и мы хотим получить информацию о колонках:
global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM $wpdb->postmeta" );
// Получаем имена колонок
$cols_data = $wpdb->get_col_info( 'name' );
print_r($cols_data);
/*
Array
(
[0] => meta_id
[1] => post_id
[2] => meta_key
[3] => meta_value
)
*/
// Получаем максимальную длину колонок
$cols_data = $wpdb->get_col_info( 'max_length' );
print_r($cols_data);
/*
Array
(
[0] => 6
[1] => 5
[2] => 45
[3] => 20205
)
*/
// Получаем типы данных колонок
$cols_data = $wpdb->get_col_info( 'type' );
print_r($cols_data);
/*
Array
(
[0] => 8
[1] => 8
[2] => 253
[3] => 252
)
*/
Что происходит, если указать несуществующий параметр
Если вы укажете имя колонки, которая не существует, вы получите предупреждение, например:
$cols_data = $wpdb->get_col_info( 'primary_key' );
/*
Notice: Undefined property: stdClass::$primary_key in /ваш_сайт/wp-includes/wp-db.php on line 3435
Array
(
[0] =>
[1] =>
[2] =>
[3] =>
)
*/
Получение данных о конкретной колонке
Чтобы получить данные о конкретной колонке, укажите индекс в качестве второго параметра:
echo $wpdb->get_col_info( 'name', 0 ); //> meta_id
echo $wpdb->get_col_info( 'name', 1 ); //> post_id
echo $wpdb->get_col_info( 'max_length', 0 ); //> 6
echo $wpdb->get_col_info( 'max_length', 1 ); //> 5
Изменения
Метод get_col_info()
был добавлен в версии 0.71.
Реализация метода
Вот как выглядит реализация метода в коде:
public function get_col_info( $info_type = 'name', $col_offset = -1 ) {
$this->load_col_info();
if ( $this->col_info ) {
if ( -1 === $col_offset ) {
$i = 0;
$new_array = array();
foreach ( (array) $this->col_info as $col ) {
$new_array[ $i ] = $col->{$info_type};
++$i;
}
return $new_array;
} else {
return $this->col_info[ $col_offset ]->{$info_type};
}
}
}
Заключение
Метод get_col_info()
прост в использовании и предоставляет ценную информацию о структуре таблиц вашей базы данных в WordPress. Используя его, вы сможете лучше понимать, как устроены данные в ваших запросах.