wpdb::get_var() publicWP 0.71

Отримує значення одного осередку з результату запиту. За замовчуванням береться перший осередок – це перший стовпчик і перший рядок.

Якщо результат запиту містить більше однієї колонки та/або більше одного рядка, то буде повернено значення зазначеної комірки (вказується у 2 та 3 параметрах). Так, щоб отримати значення другого осередку з другого рядка результату запиту, потрібно вказати другий і третій параметри: $ column_offset = 1 $ row_offset = 1 .

Якщо викликати метод без запиту: $query = null, то повернеться значення вказаної комірки попереднього запиту.

{} Це метод класу: wpdb{}

Хуків немає.

Повертає

Строку|null. Значення осередку таблиці бази даних у вигляді рядка.

  • значение ячейки— якщо запит отримує значення однієї комірки (колонки у рядку).
  • значение первой ячейки первой колонки— якщо запит отримує один рядок та кілька колонок.
  • значение первой ячейки первой строки и колонки— якщо запит отримує кілька рядків та стовпчиків.
  • NULL– Коли результату немає.

Використання

$wpdb->get_var( 'query', $column_offset, $row_offset );
query
(рядок/null)
Запит, який потрібно виконати. Можна встановити цей параметр значення
null , тоді функція поверне результат останнього запиту, який був виконаний класом (зберігся в змінній).
column_offset
(число)
Потрібна колонка (відступ колонкам). за замовчуванням 0 – перша колонка.
row_offset
(число)
Потрібний рядок (відступ по рядках). за замовчуванням 0 – перший рядок.

Приклади

0

#1 Виведемо на екран кількість користувачів

$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users;" );
echo '<p>Кількість користувачів дорівнює: ' . $user_count . '</p>';
0

#2 Виведемо на екран суму значень певних довільних полів

// Визначаємо довільний ключ, який потрібно порахувати
$meta_key = 'miles';
$allmiles = $wpdb->get_var($wpdb->prepare(
	"SELECT sum(meta_value) FROM $wpdb->postmeta WHERE meta_key = %s", $meta_key
));
echo '<p>Загальна кількість довільних полів miles: '.$allmiles . '</p>';
0

#3 Набір висновків статистики блогу

# Загальна Кількість авторів блогу
function get_totalauthors() {
	Global $wpdb;
	$totalauthors = intval( $wpdb->get_var(
		"
		SELECT COUNT(ID) FROM $wpdb->users
		LEFT JOIN $wpdb->usermeta ON $wpdb->usermeta.user_id = $wpdb->users.ID
		WHERE $wpdb->users.user_activation_key = '' AND $wpdb->usermeta.meta_key = '{$wpdb->prefix}user_level' AND (meta_value+0.00) > 1
		"
	)));

	return $totalauthors;
}

# Загальна кількість постів
function get_totalposts(){
	Global $wpdb;
	$totalposts = intval( $wpdb->get_var(
		"SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish'"
	)));

	return $totalposts;
}

# Загальна кількість сторінок
function get_totalpages() {
	Global $wpdb;
	$totalpages = intval( $wpdb->get_var(
		"SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish'"
	));

	return $totalpages;
}

# Загальна Кількість коментарів
function get_totalcomments() {
	Global $wpdb;
	$totalcomments = intval( $wpdb->get_var(
		"SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_approved = '1'"
	));

	return $totalcomments;
}

# Загальна Кількість коментаторів
function get_totalcommentposters() {
	Global $wpdb;
	$totalcommentposters = intval($wpdb->get_var(
		"SELECT COUNT(DISTINCT comment_author) FROM $wpdb->comments WHERE comment_approved = '1' AND comment_type = ''"
	));

	return $totalcommentposters;
}

# Загальна Кількість посилань
function get_totallinks() {
	Global $wpdb;
	$totallinks = intval( $wpdb->get_var("SELECT COUNT(link_id) FROM $wpdb->links") );

	return $totallinks;
}

список змін

З версії 0.71Введено.

Код wpdb::get_var() WP 6.0.2

public function get_var( $query = null, $x = 0, $y = 0 ) {
	$this->func_call = "$db->get_var("$query", $x, $y)";

	if ( $query ) {
		if ( $this->check_current_query && $this->check_safe_collation( $query ) ) {
			$this->check_current_query = false;
		}

		$this->query( $query );
	}

	// Extract var out of cached results based on x,y vals.
	if ( ! empty( $this->last_result[ $y ] ) ) ) {
		$values ​​= array_values( get_object_vars( $this->last_result[ $y ] ) );
	}

	// If there is a value return it, else return null.
	return ( isset( $values[ $x ] ) && '' !== $values[ $x ] ) ? $ values ​​[ $ x ] : null;
}

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

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