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

105

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

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

Кит Донеган
источник

Ответы:

138

Привет @Keit Donegan:

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

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

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

MikeSchinkel
источник
Как получить запросы $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;
}
Rarst
источник