Come stampare lo sql eccitato subito dopo la sua esecuzione
-
-
So che ètroppotardi,maper riferimentofuturo.Puoi semplicementeechopreparare l'istruzioneprima dipassarla alla query.Sarebbe sicuramentepiùfacile.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 risposta
- voti
-
- 2013-08-16
L'oggetto
$wpdb
ha alcuneproprietà che vengonoimpostateper questo: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:prima ditutto deviimpostare
define( 'SAVEQUERIES', true );
neltuofilewp-config.php
nella cartellaprincipale di 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.-
hmmmanelmio casonon c'èniente in $ wpdb-> last_query.hmm but in my case there is nothing in $wpdb->last_query.
- 0
- 2013-08-16
- ravisoni
-
Hai `definito ('SAVEQUERIES',true);`neltuo `wp-config.php` o qualcosa come`!definito ('SAVEQUERIES') AND definito ('SAVEQUERIES',true); `neltuo script?Altrimentinonfunzionerà.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ì,penso che la querynon sia affattoin esecuzionee chenon ci sianoimpostazioni $ 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
-
attiva quindi wp_debug,in modo da ricevereerrori o avvisi sepresenti.turn on wp_debug then, so that you'll get errors or warning if any there.
- 1
- 2013-08-16
- Kumar
-
Errore del database di WordPress: [La queryera vuota]WordPress database error: [Query was empty]
- 0
- 2013-08-16
- ravisoni
-
Provainvece `$ wpdb->get_results ()`e dai un'occhiata alla documentazione del Codex su `$ wpdb`.Try `$wpdb->get_results()` instead and take a look at the Codex documentation on `$wpdb`.
- 0
- 2013-08-16
- kaiser
-
So che latua query originale risale amoltotempofa,ma sembra chetu abbia riscontratoilproblema delle dimensioni della colonna.Soloper chiunque altro stia cercando una soluzione ai risultati della query senzaerrori:tieni presente che wpdbesce silenziosamente,senzamessaggi oerrori,quando una colonnanellatua query supera la dimensione della colonnaneltuo database.Non c'è quasimodo di vedere che ciò sia accadutoe WordPress si è opposto connoncuranza (IMHO) a risolverlo.C'è unabrevepatch chepuoiinserirein wpdb.phpin un ambiente di sviluppoper renderlomoltopiù semplice.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 Potresti voler collegare allapatch?O ancorameglio: aggiungiloin una risposta?O [modifica] questa risposta?@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
Hoelencato 3 approcci qui:
- Utilizzo di
SAVEQUERIES
e stampa ditutte le query apiè dipagina - Utilizzando
$wpdb->last_query
per stampare solo l'ultima queryeseguita,è utileper lefunzioni di debug. - Utilizzo di unplug-in come Query Monitor.
Dovresti aggiungerloneltuo wp-config.php
define('SAVEQUERIES', true);
Quindinelpiè dipagina deltuotema aggiungi questo codice:
<?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 ?>
Oppure,se desideri stampare solo l'ultima queryeseguita,puoi utilizzarla appena sotto la chiamata allafunzione query
$wpdb
.global $wpdb; echo $wpdb->last_query;//lists only single query
Unterzo approccio sarebbe usare unplugin come Query Monitor cheelencain dettagliotutte le queryeseguite su unapaginae altri dettagli adessa associati come quante righe restituiscee iltempoimpiegatoper l'esecuzione o se è query. http://wordpress.org/plugins/query-monitor/
È unabuonaidea usare questoplugin soloin ambiente DEVe non dovrebbeessere lasciato attivato su un sito live. Inoltre,Query Monitor a voltepuò causareproblemi con latuapagina,come l'errore 5XX sultuomodello/pagina se ci sonotroppierrori.
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
Devi aggiungereentrambe lefunzioni,altrimentinonmostreràmaierrori
$wpdb->show_errors(); $wpdb->print_error();
Questafunzioneti mostrerà unerrore corretto come questo
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
Volevo aggiungere che lamigliore risposta votata da @kaisernon è deltutto corretta:
// Print last SQL query string $wpdb->last_query
Il suo ritorno è ARRAY ,non una stringa.Quindipergenerare l'ultima query dovrestifare questo:
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);
Sto cercando unmodoper stampare la query sqleseguita subito dopo:
Sarebbefantastico sepotessi vedere quali valori stanno andandonella query.
Grazie