wpdb::get_var()
Отримує значення одного осередку з результату запиту. За замовчуванням береться перший осередок – це перший стовпчик і перший рядок.
Якщо результат запиту містить більше однієї колонки та/або більше одного рядка, то буде повернено значення зазначеної комірки (вказується у 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 – перший рядок.
Приклади
#1 Виведемо на екран кількість користувачів
$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users;" ); echo '<p>Кількість користувачів дорівнює: ' . $user_count . '</p>';
#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>';
#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() 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; }