¿Cómo mostrar la consulta SQL que se ejecutó?

3 dic 2010, 04:12:58
Vistas: 245K
Votos: 132

Me he encontrado antes con una función que mostraba exactamente el código SQL que se utilizó. Por ejemplo, en un bucle, pero no puedo recordarla.

¿Alguien puede decirme cuál es esa función?

0
Todas las respuestas a la pregunta 4
3
166

Hola @Keith Donegan:

Si entiendo correctamente tu pregunta, ¿creo que esto es lo que estás buscando?

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

$wp_query es una variable global que contiene la consulta actual ejecutada por el loop. Si ejecutas el código anterior en cualquier momento mientras el loop está todavía activo o incluso justo después del loop, debería mostrarte el SQL del loop. Solo asegúrate de inspeccionarlo antes de dejar que se ejecute algo más que use query_posts() nuevamente.

3 dic 2010 07:44:54
Comentarios

¿Cómo obtener las consultas de $wpdb? $GLOBALS['wpdb']->request no funciona

mpsbhat mpsbhat
21 ene 2017 07:24:55

Funciona incluso en consultas personalizadas, $my_query = new WP_Query([ /* ...algunos argumentos... */ ]); => $my_query->request

jave.web jave.web
16 ago 2017 15:26:19

es muy útil

Thai Nguyen Hung Thai Nguyen Hung
22 mar 2023 09:29:08
0
83

Si ejecutaste una consulta basada en WP_Query, es así:

$customPosts = new WP_Query($yourArgs);
echo "Última consulta SQL: {$customPosts->request}";
13 ene 2012 18:26:54
0
27

Mira esta respuesta: La mejor colección de código para tu archivo functions.php

Luego agrega ?debug=sql a cualquier URL de WordPress, y mostrará la lista completa de consultas que se ejecutaron. (Y sí, da miedo...)

3 dic 2010 05:25:16
0
27

Si solo estás interesado en las Consultas (Loops) esto es lo que suelo usar:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {
    // Muestra el contenido de la consulta SQL
    var_dump($input);

    return $input;
}
3 dic 2010 09:00:44