Come visualizzare la query SQL che è stata eseguita?

3 dic 2010, 04:12:58
Visualizzazioni: 245K
Voti: 132

Mi sono imbattuto in precedenza in una funzione che mostrava l'esatto codice SQL che veniva utilizzato. Ad esempio all'interno di un ciclo, ma non riesco a ricordare.

Qualcuno può dirmi qual è quella funzione?

0
Tutte le risposte alla domanda 4
3
166

Ciao @Keith Donegan:

Se ho capito correttamente la tua domanda, penso che questo sia quello che stai cercando?

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

$wp_query è una variabile globale che contiene la query corrente eseguita dal loop. Se esegui il codice sopra in qualsiasi momento mentre il loop è ancora attivo o anche subito dopo il loop, dovrebbe mostrarti l'SQL del loop. Assicurati solo di ispezionarlo prima che venga eseguito qualcos'altro che utilizza query_posts().

3 dic 2010 07:44:54
Commenti

Come ottenere le query di $wpdb? $GLOBALS['wpdb']->request non funziona

mpsbhat mpsbhat
21 gen 2017 07:24:55

Funziona anche su query personalizzate, $my_query = new WP_Query([ /* ...alcuni argomenti... */ ]); => $my_query->request

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

è molto utile

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

Se hai eseguito una query basata su WP_Query, è questa:

$customPosts = new WP_Query($yourArgs);
// Stampa l'ultima query SQL eseguita
echo "Ultima Query SQL: {$customPosts->request}";
13 gen 2012 18:26:54
0
27

Vedi questa risposta: La Migliore Raccolta di Codice per il tuo file functions.php

Poi aggiungi ?debug=sql a qualsiasi URL di WordPress, e mostrerà l'elenco completo delle query che sono state eseguite. (E sì, fa paura...)

3 dic 2010 05:25:16
0
27

Se sei interessato solo alle Query dei Loop questo è quello che uso solitamente:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {
    // Stampa la query SQL generata
    var_dump($input);
    
    // Restituisce l'input originale
    return $input;  
}
3 dic 2010 09:00:44