web-dev-qa-db-fra.com

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

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?

101
Keith Donegan

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_query est 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 qui utilise à nouveau query_posts().

132
MikeSchinkel

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}";
58
Till

Si vous n’êtes intéressé que par Loops, c’est ce que j’utilise habituellement:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
21
Rarst

Voir cette réponse: Meilleure collection de code pour votre fichier functions.php

Ajoutez ensuite? Debug = sql à n’importe quelle URL WP, et la liste complète des requêtes exécutées sera affichée. (Et oui, ça fait peur ...)

20
Denis de Bernardy