wpdb::get_col_info() publicWP 0.71

Отримує масив з інформацією про колонки останнього запиту.

Якщо у запиті колонки не визначено, функція поверне інформацію про всі колонки таблиці. Це може стати в нагоді, коли було повернуто об’єкт, про дані якого ми нічого не знаємо.

Працює на основі кешу, тому спочатку потрібно зробити запит, використовуючи 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

Приклади

0

#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() 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};
		}
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *