在wordpress中查看当前正在执行的查询的方式是什么?


12

我正在使用对我来说是新手的wordpress现在已经为我提供了完全使用wp设计的网站,但是问题是我无法搜索找到的每个功能/页面的查询

$wpdb->get_results

用于从数据库获取结果,这也不起作用

$wpdb->queries

有什么方法可以打印当前正在执行的每个查询?

请帮忙。


您是否要查看正在执行的SQL查询?
罗特威克·冈古德

并不是说我不鼓励了解内部原理,但这暗示了另一个问题,其答案将有很大不同。您要解决什么问题?
Annika Backstrom

Answers:



10

为了$wpdb->queries工作,您需要在中进行配置wp-config.php

define('SAVEQUERIES', true);

强烈不建议在生产中使用(严重影响性能),因此默认情况下将其关闭。


这是完美的方法... +1!
Rutwick Gangurde 2011年

6

当我需要检查当前查询时,我经常这样做:

add_action( 'wp_head', 'show_current_query' );

function show_current_query() {
    global $wp_query;

    if ( !isset( $_GET['q'] ) )
        return;
    echo '<textarea cols="50" rows="10">';
    print_r( $wp_query );
    echo '</textarea>';
}

要显示当前查询,只需添加?q到当前URL中即可。

这将显示当前查询(存储在全局变量$ wp_query中),包括SQL查询和所有其他查询变量。



0

全局$wp_query包含有关当前查询的所有信息,包括参数,结果,结果的内容以及查询本身。

$wp_query->request 应该在这里为您完成工作。



0

您可以使用Wp Pear Debug插件。它将向您显示在页面中执行的查询的列表,执行这些查询所花费的秒数以及启动查询的php函数。请注意,您必须至少保存一次设置,然后才能开始工作。



0
<?php $wpdb->show_errors(); ?>  // use syntax just before your query 
<?php $wpdb->print_error(); ?>  // user after your query execution

就是

<?php $wpdb->show_errors();
      $id=$wpdb->update('table_name',$array,$condition);
      $wpdb->print_error();
?>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.