Je recherche un moyen d'imprimer la requête SQL exécutée juste après:
$wpdb->query(
$wpdb->prepare("INSERT
INTO tbl_watchprosite SET
keywords=%s,url_to_post=%s,description=%s,
date_captured=%s,crawl_id=%d,
image_main=%s,images=%s,brand=%s,
series=%s,model=%s,condition=%s,box=%s,
papers=%s,year=%s,case_size=%s,status=%s,listed=%s,
asking_price=%s,retail_price=%s,payment_info=%s,forum_id=%d",
$this->getForumSettings()->search_meta,$element->href,$post_meta['description'],current_time('mysql'),$cid,$post_meta['image_main'],$images,$post_meta[0],$post_meta[1],$post_meta[2],$post_meta[3],$post_meta[4],$post_meta[5],$post_meta[6],$post_meta[7],$status,$post_meta[9],$post_meta[10],$post_meta[11],$this->getForumSettings()->ID)
);
Ce serait formidable si je peux voir quelles valeurs vont dans la requête.
Merci
Réponses:
L'
$wpdb
objet a des propriétés définies pour cela:Remarque: Tout d'abord, vous devez définir
define( 'SAVEQUERIES', true );
votrewp-config.php
fichier dans le dossier racine de WordPress.la source
defined( 'SAVEQUERIES', true );
dans votrewp-config.php
ou quelque chose comme! defined( 'SAVEQUERIES' ) AND defined( 'SAVEQUERIES', true );
dans votre script? Sinon ça ne marchera pas.J'ai énuméré 3 approches ici:
SAVEQUERIES
et impression de toutes les requêtes en pied de page$wpdb->last_query
pour imprimer uniquement la dernière requête exécutée, ceci est utile pour les fonctions de débogage.Vous devez l'ajouter dans votre wp-config.php
Ensuite, dans le pied de page de votre thème, ajoutez ce code:
Ou si vous souhaitez imprimer uniquement la dernière requête exécutée, vous pouvez l'utiliser juste en dessous de votre
$wpdb
appel de fonction de requête.Une 3ème approche serait d'utiliser un plugin comme Query Monitor qui répertorie toutes les requêtes exécutées sur une page en détail, et d'autres détails qui lui sont associés comme le nombre de lignes qu'elle renvoie et le temps nécessaire à l'exécution ou s'il s'agit d'une requête lente. http://wordpress.org/plugins/query-monitor/
C'est une bonne idée d'utiliser ce plugin dans l'environnement DEV uniquement et ne doit pas être laissé activé sur un site en direct. En outre, Query Monitor peut parfois provoquer des problèmes avec votre page, comme l'erreur 5XX sur votre modèle / page s'il y a trop d'erreurs.
la source
Vous devez ajouter les deux fonctions, sinon il ne montrera jamais d'erreur
Cette fonction vous montrera une erreur appropriée comme celle-ci
la source
Je voulais ajouter que la meilleure réponse votée par @kaiser n'est pas entièrement correcte:
Le retour est ARRAY , pas une chaîne. Donc, pour sortir la dernière requête, vous devez faire ceci:
la source