Как отобразить SQL-запрос, который был выполнен?

3 дек. 2010 г., 04:12:58
Просмотры: 245K
Голосов: 132

Я раньше сталкивался с функцией, которая отображала точный SQL-код, который был использован. Например, в цикле, но не могу вспомнить.

Кто-нибудь может подсказать эту функцию?

0
Все ответы на вопрос 4
3
166

Привет @Keith Donegan:

Если я правильно понял ваш вопрос, думаю, это то, что вы ищете?

<?php echo $GLOBALS['wp_query']->request; ?>

$wp_query - это глобальная переменная, которая содержит текущий запрос, выполняемый циклом. Если вы запустите приведенный выше код во время активности цикла или даже сразу после него, он должен выдать SQL-запрос из цикла. Просто убедитесь, что вы проверяете его до того, как будет запущено что-то еще, использующее query_posts().

3 дек. 2010 г. 07:44:54
Комментарии

Как получить запросы $wpdb? $GLOBALS['wpdb']->request не работает

mpsbhat mpsbhat
21 янв. 2017 г. 07:24:55

Работает даже с пользовательским запросом, $my_query = new WP_Query([ /* ...некоторые аргументы... */ ]); => $my_query->request

jave.web jave.web
16 авг. 2017 г. 15:26:19

это очень полезно

Thai Nguyen Hung Thai Nguyen Hung
22 мар. 2023 г. 09:29:08
0
83

Если вы выполнили запрос на основе WP_Query, то это будет так:

$customPosts = new WP_Query($yourArgs);
echo "Последний SQL-запрос: {$customPosts->request}";
13 янв. 2012 г. 18:26:54
0
27

Смотрите этот ответ: Лучшая подборка кода для вашего файла functions.php

Затем добавьте ?debug=sql к любому URL WordPress, и он выведет полный список выполненных запросов. (И да, это пугает...)

3 дек. 2010 г. 05:25:16
0
27

Если вас интересуют только циклы запросов, вот что я обычно использую:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {
    // Выводим SQL-запрос
    var_dump($input);

    return $input;
}
3 дек. 2010 г. 09:00:44