Comment afficher une requête SQL exécutée dans une requête?


105

Je suis tombé sur une fonction qui affichait exactement le code SQL utilisé. Dans une boucle par exemple, mais je ne m'en souviens pas.

Quelqu'un peut-il me dire cette fonction?

Réponses:


138

Bonjour Keith Donegan:

Si je comprends bien votre question, je pense que c’est ce que vous recherchez?

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

$wp_queryest une variable globale qui contient la requête en cours exécutée par la boucle. Si vous exécutez le code ci-dessus à tout moment alors que la boucle est toujours active ou même juste après, elle devrait vous donner le code SQL de la boucle. Assurez-vous simplement de l'inspecter avant de laisser fonctionner quelque chose d'autre qui l'utilise à query_posts()nouveau.


Comment obtenir des requêtes de $wpdb? $GLOBALS['wpdb']->requestne fonctionne pas
mpsbhat

1
Fonctionne même sur une requête personnalisée, $my_query = new WP_Query([ /* ...some args... */ ]);=>$my_query->request
jave.web Le

58

Si vous avez exécuté une requête basée sur WP_Query, c'est ceci:

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


21

Si vous êtes seulement intéressé par les boucles, voici ce que j'utilise habituellement:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.