Como imprimir o SQL excesso de excesso após sua execução
-
-
Eu sei que étarde demais,maspara referênciafutura.Vocêpode apenasecoar a declaração antes depassá-lopara consultar.Seria certamentemaisfá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 respostas
- votos
-
- 2013-08-16
O objeto
$wpdb
tem algumaspropriedades sendo definidaspara que: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: Primeiro detudo,vocêprecisa definir
.define( 'SAVEQUERIES', true );
no seu arquivowp-config.php
napasta raiz do 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.-
Hmm,masnomeu caso,não hánadaem $ WPDB-> Last_Query.hmm but in my case there is nothing in $wpdb->last_query.
- 0
- 2013-08-16
- ravisoni
-
Vocêjá "definiu ('SaveQueries',true);`no seu `wp-config.php` ou algo como`!Definido ('SaveQueries')e definido ('Savequeries',true); `no seu script?Maisnãofunciona.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
-
Sim,eu acho que a consultanãoestáfuncionandoem tudo quenão hánada que a configuração seja $ 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
-
Ligue o WP_DEBUG,para que você obtenhaerros ou avisos se houver lá.turn on wp_debug then, so that you'll get errors or warning if any there.
- 1
- 2013-08-16
- Kumar
-
Erro debanco de dados do WordPress: [Queryestava vazio]WordPress database error: [Query was empty]
- 0
- 2013-08-16
- ravisoni
-
Tente `$ wpdb->get_results ()`e dar uma olhadana documentação do Codexno `$ WPDB`.Try `$wpdb->get_results()` instead and take a look at the Codex documentation on `$wpdb`.
- 0
- 2013-08-16
- kaiser
-
Eu sei que sua consulta originalfoi hámuitotempo,masparece que vocêestava atingindo a questão dotamanho da coluna.Apenaspara qualquer outrapessoa queestejaprocurandopor uma soluçãoparanenhum resultado de consulta semerro - seja avisado que o WPDB sai silenciosamente,semmensagem ouerro,quando uma colunaem sua consultaexcede otamanho da colunaem seubanco de dados.Não há quasenenhumamaneira de verisso aconteceu,e o WordPressfoiinsistente (IMHO)parafixarisso.Há umpatch curto que vocêpode colocarno WPDB.PHPem um ambiente de desenvolvimentoparatornarissomuitomaisfácil.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 Vocêpode querer ligarpara opatch?Oumelhor ainda: adicione-oem uma resposta?Ou [editar]esta resposta?@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
Eu listei 3 abordagens aqui:
- .
- Usando
SAVEQUERIES
e imprimindotodas as consultasno rodapé - usando
$wpdb->last_query
paraimprimir apenas a consultamais recenteexecutada,isso é útilparafunções de depuração. - Usando umplugin comomonitor de consulta.
Vocêprecisaria adicionarissoem seu wp-config.php
define('SAVEQUERIES', true);
Então,no rodapé do seutema,adicioneeste 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 ?>
ou se você quiserimprimir apenas a última consultaexecutada,vocêpode usarisso logo abaixo do seu
$wpdb
chamada defunção de consulta.global $wpdb; echo $wpdb->last_query;//lists only single query
Uma abordagem 3ª seria usar ummonitor de consulta como lizartodas as consultasexecutadasem umapáginaem detalhes,e outros detalhes associados aela como quantas linhas retorname otemponecessáriopara aexecução ou sefor lento consulta. http://wordpress.org/plugins/query-monitor/
É umaboaideia usar apenasestepluginno ambiente DEVe não deve ser deixado ativadoem um site ao vivo. Além disso,omonitor de consultapode às vezes causarproblemas com suapágina,comoerro de 5xxno seumodelo/página,se houvermuitoserros.
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
Vocêtem que adicionar ambas asfunções,caso contrário,nuncamostraráerro
$wpdb->show_errors(); $wpdb->print_error();
Estafunçãomostraráerro adequado comoesteeste
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
Eu queria acrescentar que a respostamais votadapor @kaisernãoestátotalmente correta:
// Print last SQL query string $wpdb->last_query
O retorno é array ,não uma string.Então,paraproduzir última consulta,você devefazerisso:
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);
Estouprocurandopor umamaneirapela qualpossoimprimir a consulta SQLexecutada logo após o:
Isso seria ótimo seeupuder ver quais valoresestãoindona consulta.
obrigado