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?

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.


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


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;
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.