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


105

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

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

Ответы:


138

Привет @Keit Donegan:

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

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

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


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

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

58

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

$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";


21

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

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.