wpdb::query()
Выполняет любые запросы к базе данных WordPress.
Этот метод подразумевает выполнение всех запросов кроме SELECT. Для SELECT есть специальные методы: $wpdb->get_results, $wpdb->get_row, $wpdb->get_col, $wpdb->get_var.
Имейте ввиду, что как и для всех функций класса wpdb, передаваемые параметры нужно очистить от SQL инъекций, сделать это можно двумя способами:
// способ 1 esc_sql( $user_entered_data_string ) // способ 2 $wpdb->prepare( 'query' , value_parameter[, value_parameter ... ] )
Подробнее читайте в секции "Защита запросов от SQL инъекций"
Метод класса: wpdb{}
Хуки из метода
Возвращает
int|true|false
.
true
— для запросов CREATE, ALTER, TRUNCATE, DROP.Число
— задействованных строк, для запросов:DELETE
/UPDATE
/SELECT
.false
— когда запрос вызвал ошибку.
Использование
global $wpdb; $wpdb->query( $query );
- $query(строка) (обязательный)
- Database query.
Примеры
#1 Удалить произвольное поле 'gargle' и его значение у поста 13
$wpdb->query( "DELETE FROM $wpdb->postmeta WHERE post_id = '13' AND meta_key = 'gargle'" );
#2 Установить родительскую страницу 7 для страницы 15
$wpdb->query( "UPDATE $wpdb->posts SET post_parent = 7 WHERE ID = 15 AND post_status = 'static'" );
#3 Удалить осиротевшие произвольные поля
$wpdb->query("DELETE pm FROM $wpdb->postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL");
#4 Изменим ключ у полей-повторителей ACF
$wpdb->query( " UPDATE $wpdb->postmeta SET meta_key = REPLACE(meta_key, 'knowledge-base-type', 'knowledge-base-list') WHERE `meta_key` LIKE '%knowledge-base-type%' " );
Список изменений
С версии 0.71 | Введена. |