Wie wird eine SQL-Abfrage angezeigt, die in der Abfrage ausgeführt wurde?

104

Ich bin auf eine Funktion gestoßen, die genau den SQL-Code anzeigt, der verwendet wurde. Zum Beispiel in einer Schleife, kann mich aber nicht erinnern.

Kann mir jemand diese Funktion sagen?

Keith Donegan
quelle

Antworten:

137

Hallo @Keith Donegan:

Wenn ich Ihre Frage richtig verstehe, denke ich, dass Sie danach suchen?

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

$wp_queryist eine globale Variable, die die aktuelle Abfrage enthält, die von der Schleife ausgeführt wird. Wenn Sie den obigen Code jederzeit ausführen, während die Schleife noch aktiv ist, oder sogar direkt nach der Schleife, sollten Sie die SQL aus der Schleife erhalten. Stellen Sie einfach sicher, dass Sie es überprüfen, bevor Sie etwas anderes ausführen lassen, das query_posts()wieder verwendet wird.

MikeSchinkel
quelle
Wie bekomme ich Anfragen von $wpdb? $GLOBALS['wpdb']->requestfunktioniert nicht
mpsbhat
1
Funktioniert auch bei benutzerdefinierten Abfragen $my_query = new WP_Query([ /* ...some args... */ ]);=>$my_query->request
jave.web
58

Wenn Sie eine Abfrage basierend auf ausgeführt haben WP_Query, ist dies:

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

Wenn Sie sich nur für Loops interessieren, verwende ich normalerweise Folgendes:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
Rarst
quelle