Jak wyświetlić zapytanie SQL uruchomione w zapytaniu?

104

Natrafiłem na funkcję, która wyświetlała dokładnie użyty kod SQL. Na przykład w pętli, ale nie pamiętam.

Czy ktoś może mi powiedzieć tę funkcję?

Keith Donegan
źródło

Odpowiedzi:

137

Cześć @Keith Donegan:

Jeśli dobrze rozumiem twoje pytanie, myślę, że tego właśnie szukasz?

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

$wp_queryjest zmienną globalną, która zawiera bieżące zapytanie uruchamiane przez pętlę. Jeśli uruchomisz powyższy kod w dowolnym momencie, gdy pętla jest nadal aktywna lub nawet zaraz po pętli, powinna ona dać ci SQL z pętli. Tylko upewnij się, że to sprawdziłeś, zanim uruchomisz coś innego, co query_posts()ponownie się zużyje .

MikeSchinkel
źródło
Jak uzyskać zapytania $wpdb? $GLOBALS['wpdb']->requestnie działa
mpsbhat 21.01.17
1
Działa nawet na niestandardowe zapytanie, $my_query = new WP_Query([ /* ...some args... */ ]);=>$my_query->request
jave.web
58

Jeśli uruchomiłeś zapytanie w oparciu o WP_Query:

$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";
Do
źródło
21

Jeśli interesujesz się tylko pętlami, zwykle tego używam:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
Rarst
źródło