Cum să afișezi interogarea SQL care a fost executată?

3 dec. 2010, 04:12:58
Vizualizări: 245K
Voturi: 132

Am dat peste o funcție în trecut care afișa exact codul SQL care a fost utilizat. Într-o buclă de exemplu, dar nu-mi amintesc.

Poate să-mi spună cineva care este acea funcție?

0
Toate răspunsurile la întrebare 4
3
166

Salut @Keith Donegan:

Dacă am înțeles corect întrebarea ta, cred că asta este ceea ce cauți?

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

$wp_query este o variabilă globală care conține interogarea curentă executată de loop. Dacă rulezi codul de mai sus în orice moment în timp ce loop-ul este încă activ sau chiar imediat după loop, ar trebui să-ți afișeze SQL-ul din loop. Asigură-te doar că îl inspectezi înainte ca altceva să ruleze și să folosească din nou query_posts().

3 dec. 2010 07:44:54
Comentarii

Cum să obții interogările din $wpdb? $GLOBALS['wpdb']->request nu funcționează

mpsbhat mpsbhat
21 ian. 2017 07:24:55

Funcționează chiar și pe interogări personalizate, $my_query = new WP_Query([ /* ...câțiva parametri... */ ]); => $my_query->request

jave.web jave.web
16 aug. 2017 15:26:19

este foarte util

Thai Nguyen Hung Thai Nguyen Hung
22 mar. 2023 09:29:08
0
83

Dacă ai rulat o interogare bazată pe WP_Query, este aceasta:

$customPosts = new WP_Query($yourArgs);
echo "Ultima interogare SQL: {$customPosts->request}";
13 ian. 2012 18:26:54
0
27

Vezi acest răspuns: Cea mai bună colecție de cod pentru fișierul tău functions.php

Apoi adaugă ?debug=sql la orice URL WordPress și îți va afișa lista completă a interogărilor care au fost executate. (Și da, poate fi înspăimântător...)

3 dec. 2010 05:25:16
0
27

Dacă ești interesat doar de interogările din Bucle (Loops), iată ce folosesc de obicei:

add_filter( 'posts_request', 'dump_request' );

// Funcție pentru afișarea interogării SQL
function dump_request( $input ) {

    var_dump($input); // Afișează interogarea SQL completă

    return $input;
}
3 dec. 2010 09:00:44