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

94

J'ai rencontré une fonction avant d'afficher le code SQL exact utilisé dans une boucle par exemple, mais je ne m'en souviens pas.

Quelqu'un peut-il me dire cette fonction?

Cheers

    
posée Keith Donegan 03.12.2010 - 03:12
la source

4 réponses

127

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() .

    
réponse donnée MikeSchinkel 03.12.2010 - 06:44
la source
54

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}";
    
réponse donnée Till 13.01.2012 - 17:26
la source
20

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

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
    
réponse donnée Rarst 03.12.2010 - 08:00
la source
19

Voir cette réponse: meilleur 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 ...)

    
réponse donnée Denis de Bernardy 03.12.2010 - 04:25
la source

Lire d'autres questions sur les étiquettes