Cómo imprimir el sql ejecutado justo después de su ejecución
-
-
Sé quees demasiadotarde,peropara referenciafutura.Puede hacereco de la declaración depreparación antes depasarla a la consulta.Seguramente seríamásfácil.I know it's too late, but for future reference. You can just echo prepare statement before passing it to query. It would be surely easier.
- 1
- 2016-10-20
- Maciej Paprocki
-
4 respuestas
- votos
-
- 2013-08-16
El objeto
$wpdb
tiene algunaspropiedades que seestán configurandoparaeso:global $wpdb; // Print last SQL query string echo $wpdb->last_query; // Print last SQL query result echo $wpdb->last_result; // Print last SQL query Error echo $wpdb->last_error;
Nota: Enprimer lugar,debe configurar
define( 'SAVEQUERIES', true );
en su archivowp-config.php
en la carpeta raíz de WordPress.The
$wpdb
object has some properties getting set for that:global $wpdb; // Print last SQL query string echo $wpdb->last_query; // Print last SQL query result echo $wpdb->last_result; // Print last SQL query Error echo $wpdb->last_error;
Note: First of all you have to set
define( 'SAVEQUERIES', true );
in yourwp-config.php
file at root folder of WordPress.-
hmmperoen mi casono haynadaen $ wpdb-> last_query.hmm but in my case there is nothing in $wpdb->last_query.
- 0
- 2013-08-16
- ravisoni
-
¿Ha `definido ('SAVEQUERIES',verdadero);`en su `wp-config.php` o algo como`!definido ('SAVEQUERIES') Y definido ('SAVEQUERIES',verdadero); `en su script?De lo contrario,nofuncionará.Have you `defined( 'SAVEQUERIES', true );` in your `wp-config.php` or something like `! defined( 'SAVEQUERIES' ) AND defined( 'SAVEQUERIES', true );` in your script? Else it won't work.
- 0
- 2013-08-16
- kaiser
-
Sí,creo que la consultano seestáejecutandoen absoluto yno hayninguna configuraciónes $ wpdb-> last_query.:(Yes i have, I think the query is not running at all that y there is nothing setting is $wpdb->last_query. :(
- 0
- 2013-08-16
- ravisoni
-
encienda wp_debugentonces,para que recibaerrores o advertencias si los hay.turn on wp_debug then, so that you'll get errors or warning if any there.
- 1
- 2013-08-16
- Kumar
-
Error de labase de datos de WordPress: [la consultaestaba vacía]WordPress database error: [Query was empty]
- 0
- 2013-08-16
- ravisoni
-
En su lugar,pruebe con `$ wpdb->get_results ()` yeche un vistazo a la documentación del Codexen `$ wpdb`.Try `$wpdb->get_results()` instead and take a look at the Codex documentation on `$wpdb`.
- 0
- 2013-08-16
- kaiser
-
Sé que su consulta originalfue de hacemuchotiempo,peroparece queestaba abordandoelproblema deltamaño de la columna.Solopara cualquier otrapersona queestébuscando una soluciónpara los resultados de la consulta sinningúnerror,tengaen cuenta que wpdb sale silenciosamente,sinmensajesni errores,cuando una columnaen su consultaexcedeeltamaño de la columnaen subase de datos.Casino hayforma de ver queesto ha sucedido,y WordPress se ha resistido descuidadamente (enmi humilde opinión) a solucionarlo.Hay unpequeñoparche quepuedesponeren wpdb.phpen unentorno de desarrollopara que seamuchomásfácil veresto.I know your original query was from a long time ago, but it sounds like you were hitting the column size issue. Just for anyone else who is searching for a solution to no query results with no error - be warned that wpdb exits silently, with no message or error, when a column in your query exceeds the size of the column in your database. There is almost no way to see this has happened, and WordPress have been carelessly resistant (IMHO) to fixing this. There is a short patch you can put into wpdb.php in a dev environment to make seeing this much easier.
- 1
- 2019-12-22
- Brian C
-
@BrianC ¿Esposible que desee vincular alparche?Oinclusomejor: ¿agregarloen una respuesta?¿O [editar]esta respuesta?@BrianC You might want to link to the patch? Or even better: Add it in an answer? Or [edit] this answer?
- 0
- 2019-12-26
- kaiser
-
- 2013-08-16
Heenumeradotresenfoques aquí:
- Usando
SAVEQUERIES
e imprimiendotodas las consultasen elpie depágina - Usar
$wpdb->last_query
paraimprimir solo la última consultaejecutada,estoes útilpara lasfunciones de depuración. - Usando un complemento como Query Monitor.
Debería agregarestoen su wp-config.php
define('SAVEQUERIES', true);
Luego,en elpie depágina de sutema,agregueeste código:
<?php if (current_user_can('administrator')){ global $wpdb; echo "<pre>Query List:"; print_r($wpdb->queries); echo "</pre>"; }//Lists all the queries executed on your page ?>
O si deseaimprimir solo la última consultaejecutada,puede usarlajusto debajo de la llamada a lafunción de consulta
$wpdb
.global $wpdb; echo $wpdb->last_query;//lists only single query
Untercerenfoque sería utilizar un complemento como Query Monitor,queenumeratodas las consultasejecutadasen unapáginaen detalle,y otros detalles asociados conella,como cuántasfilas devuelve yeltiemponecesariopara laejecución o sies lento. consulta. http://wordpress.org/plugins/query-monitor/
Es unabuenaidea usareste complemento soloen elentorno DEV yno debe dejarse activadoen un sitioen vivo. Además,Query Monitor a vecespuede causarproblemas con supágina,comoelerror 5XXen suplantilla/página si hay demasiadoserrores.
I've listed down 3 approaches in here:
- Using
SAVEQUERIES
and printing all the queries in footer - Using
$wpdb->last_query
to print just the latest query executed, this is useful for debugging functions. - Using a plugin like Query Monitor.
You'd need to add this in your wp-config.php
define('SAVEQUERIES', true);
Then in the footer of your theme add this code:
<?php if (current_user_can('administrator')){ global $wpdb; echo "<pre>Query List:"; print_r($wpdb->queries); echo "</pre>"; }//Lists all the queries executed on your page ?>
Or if you'd like to print just the last executed query, you can use this just below your
$wpdb
query function call.global $wpdb; echo $wpdb->last_query;//lists only single query
A 3rd approach would be to use a plugin like Query Monitor which lists all the queries executed on a page in detail, and other details associated with it like how many rows it returns and the time taken for execution or if it's a slow query. http://wordpress.org/plugins/query-monitor/
It's a good idea to use this plugin in DEV environment only and shouldn't be left activated on a live site. Also, Query Monitor can sometimes cause issues with your page, Like 5XX error on your template/page if there are too many errors.
-
- 2017-04-15
Tienes que agregar ambasfunciones,de lo contrarionuncamostraráelerror
$wpdb->show_errors(); $wpdb->print_error();
Estafunción lemostrará unerror apropiado comoeste
You have to add both functions,otherwise it will never show error
$wpdb->show_errors(); $wpdb->print_error();
This function will show you proper error like this this
-
- 2017-07-04
Quería agregar que lamejor respuesta votadapor @kaisernoes completamente correcta:
// Print last SQL query string $wpdb->last_query
El resultadoes ARRAY ,no una cadena.Entonces,paragenerar la última consulta,debe haceresto:
echo 'Last query: '.var_export($wpdb->last_query, TRUE);
I wanted to add that the best up-voted answer by @kaiser is not fully correct:
// Print last SQL query string $wpdb->last_query
The return of it is ARRAY, not a string. So to output last query you should do this:
echo 'Last query: '.var_export($wpdb->last_query, TRUE);
Estoybuscando unaforma deimprimir la consulta SQLejecutadajusto después de:
Seríagenial sipudiera ver qué valores vanen la consulta.
Gracias