wpdb::get_col_info()
Отримує масив з інформацією про колонки останнього запиту.
Якщо у запиті колонки не визначено, функція поверне інформацію про всі колонки таблиці. Це може стати в нагоді, коли було повернуто об’єкт, про дані якого ми нічого не знаємо.
Працює на основі кешу, тому спочатку потрібно зробити запит, використовуючи get_var() і т.д. а потім викликати цю функцію – вона поверне дані колонок останнього запиту.
{} Це метод класу: wpdb{}
wpdb::load_col_info()
Хуків немає.
Повертає
Разное
. Дані стовпчиків.
Використання
Global $wpdb; $wpdb->get_col_info( $info_type, $col_offset );
-
$info_type
(рядок) Вказує, яку інформацію нам потрібно отримати. Список можливих значень:
name
– Назва колонки.table
– Назву таблиці до якої належить колонка.max_length
– Максимальна довжина даних колонки.not_null
– 1 якщо комірка колонки не може набувати значення NULL.primary_key
– 1 якщо колонка є первинним ключем.unique_key
– 1 якщо комірки колонки повинні бути завжди унікальними.multiple_key
– 1 якщо осередки колонки можуть бути не унікальні.numeric
– 1 якщо колонка містить числові дані.blob
– 1, якщо колонка містить дані типу BLOB (двійкові дані).type
– Тип колонки.unsigned
– 1 якщо колонка має тип даних UNSIGNED .zerofill
– 1 якщо колонка має тип даних ZEROFILL .
Типово: name
-
$col_offset
(число) Вказівник, інформацію про яку колонку потрібно отримати:
-1
— буде отримано інформацію про всі колонки у вигляді масиву. За замовчуванням.0
,1
,2
,...
— буде повернуто інформацію про вказану колонку, де 0 – перша колонка, 1 – друга і т.д.
За замовчуванням: -1
Приклади
#1 Демонстрація роботи
Зробимо запит:
Global $wpdb; $results = $wpdb->get_results( "SELECT * FROM $wpdb->postmeta");
Тепер отримаємо дані про колонки таблиці цього запиту:
$cols_data = $wpdb->get_col_info( 'name' ); /* Array ( [0] => meta_id [1] => post_id [2] => meta_key [3] => meta_value ) */ $cols_data = $wpdb->get_col_info( 'max_length'); /* Array ( [0] => 6 [1] => 5 [2] => 45 [3] => 20205 ) */ $cols_data = $wpdb->get_col_info( 'type' ); /* Array ( [0] => 8 [1] => 8 [2] => 253 [3] => 252 ) */
Що буде, якщо вказати неіснуюче ім’я колонки:
$cols_data = $wpdb->get_col_info( 'primary_key' ); /* Notice: Undefined property: stdClass::$primary_key in /wpexample.com/public_html/wp-includes/wp-db.php on line 3435 Notice: Undefined property: stdClass::$primary_key in /wpexample.com/public_html/wp-includes/wp-db.php on line 3435 Notice: Undefined property: stdClass::$primary_key in /wpexample.com/public_html/wp-includes/wp-db.php on line 3435 Notice: Undefined property: stdClass::$primary_key in /wpexample.com/public_html/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
список змін
З версії 0.71 | Введено. |
Код wpdb::get_col_info() wpdb::get col info WP 6.0.2
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}; } } }