[改变自己wordpress.2]给wordpress加上简单debug sql调试.
或者说,同事. 需要帮她打印出来sql 调试输出到页面sql
在这里,我们使用插件或一个的方式来启动配置文件wordpress的debug
在插件文件夹 wordpress/wp-content/plugins/ 新建一个文件叫bt_debug_sql.php
<?php
/*
Plugin Name: Bt Debug Sql.
Plugin URI: http://www.btroot.com
Description: Show the sql at the frontpage.
Author: rainysia
Version: 1.0
Author URI: http://www.btroot.org
*/ /**
* Show debug Sql.
*
* @return void
*/
add_action('init', 'bt_debug_sql'); function bt_debug_sql() {
if (!defined('SAVEQUERIES')) {
define('SAVEQUERIES', true);
}
if (has_action('wp_footer')) {
add_action('wp_footer', 'snx_show_sql');
}
}
// show sql
function snx_show_sql(){
if (isset($_GET['debug']) && $_GET['debug'] == true) {
global $wpdb;
//echo '<pre>';
//print_r ($wpdb->queries);
$all_debug_queries = $wpdb->queries;
echo "<table>";
if (isset($all_debug_queries) && count($all_debug_queries) > 0) {
$total_time_cost = 0;
$large_time_cost = 0;
$large_sql_query = '';
$large_sql_num = 0;
$debug_file = false;
if (isset($_GET['debug_file']) && $_GET['debug_file'] == true) {
$debug_file = true;
}
echo '<tr style="font-weight:bold;"><td>Num</td><td>Times</td><td>SQL</td>';
echo $debug_file ? '<td>Include files</td><tr>' : '';
foreach ($all_debug_queries as $k => $v) {
// $v[0] is sql, $v[1] is time, $v[2] is relative file.
$total_time_cost += $v[1];
if ($large_time_cost <= $v[1]) {
$large_time_cost = $v[1];
$large_sql_query = $v[0];
$large_sql_num = $k + 1;
}
if (($k + 1) % 2 == 1) {
echo '<tr style="background-color:#8F9196;color:rgb(202, 227, 253);"><td style="font-weight:bold;text-align:center;">'.($k + 1).'</td>';
} else {
echo '<tr><td style="font-weight:bold;text-align:center;">'.($k + 1).'</td>';
}
echo '<td style="text-align:left;">'.sprintf("%.10f", $v[1]).'</td>';
echo '<td style="padding-left:6px;text-align:left;">'.$v[0].'</td>';
echo $debug_file ? '<td style="text-align:left;">'.$v[2].'</td>' : '';
echo '</tr>';
}
}
echo '<div style="text-align:left;">';
echo '<div style="widht:100%;height:3px;margin:10px 0;background:rgba(56, 83, 129, 0.85)!important; -moz-box-shadow:0px 0px 1px #c3c3c3; -webkit-box-shadow:0px 0px 1px #c3c3c3; -box-shadow:0px 0px 1px #c3c3c3;"></div>';
echo '<div>The whole sql queries cost:<span style="color:red;"> '.$total_time_cost.'s</span></div>';
echo 'The large sql is No.<span style="color:red;">'.$large_sql_num.'</span> cost: <span style="color:red;">'.$large_time_cost.'s</span><br /> <span style="color:rgb(194, 76, 95);background-color:rgb(208, 210, 218);">'.$large_sql_query.'</span><br />';
echo '<div style="widht:90%;height:3px;margin:10px 0px;background:rgba(128, 143, 158, 0.85)!important; -moz-box-shadow:0px 0px 1px #c3c3c3; -webkit-box-shadow:0px 0px 1px #c3c3c3; -box-shadow:0px 0px 1px #c3c3c3;"></div>';
echo "</table>";
echo '</div>';
}
}
这里的作用仅仅是为了让wordpress的SAVEQUERIES 静态变量设为true, 所以你也能够不这样, 直接在wp-config.php 配置文件中面加一句
define('SAVEQUERIES', true);
效果是一样.
接着在/wp-content/theme/你的主题/footer.php 最后一个</div> 前加上以下的代码来调用一次wp_footer();保存就可以.
<?php wp_footer();?>
保存后就能够了. 然后去启用插件, 使用的时候, 在当前页面的url后跟?debug=true 能够开启debug sql模式, 加debug_file=true会显示include的关联文件.
http://test.com/solutions/vwideformat/test/?debug=1 和
http://test.com/solutions/vwideformat/test/?
debug=1&debug_file=1
效果例如以下
版权声明:本文博客原创文章。博客,未经同意,不得转载。
[改变自己wordpress.2]给wordpress加上简单debug sql调试.的更多相关文章
- [改变自己wordpress.2]至wordpress再加上简单的debug sql调试.
或者说,同事. 需要帮助她打印出来sql 调试输出到页面sql 在这里,我们使用插件或一个的方式来启动配置文件wordpress的debug 在插件文件夹 wordpress/wp-content/p ...
- [20190328]简单探究sql语句相关mutexes.txt
[20190328]简单探究sql语句相关mutexes.txt --//摘要:http://www.askmaclean.com/archives/understanding-oracle-mute ...
- 最简单删除SQL Server中所有数据的方法
最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间 ...
- 实验吧_简单的sql注入_1、2、3
简单的sql注入1 看着这个简单的界面,一时间没有特别好的思路,先输入一个1',发生了报错 初步猜测这是一个字符型的注入,他将我们输入的语句直接当成sql语句执行了,按题目的意思后面肯定过滤了很多注入 ...
- 【实验吧】CTF_Web_简单的SQL注入之3
实验吧第二题 who are you? 很有意思,过两天好好分析写一下.简单的SQL注入之3也很有意思,适合做手工练习,详细分析见下. http://ctf5.shiyanbar.com/web/in ...
- 【实验吧】CTF_Web_简单的SQL注入之1
题目链接:http://ctf5.shiyanbar.com/423/web/ 简单的SQL注入之1,比2,3都简单一些.利用2 的查询语句也可以实现:1'/**/union/**/select/** ...
- 四种简单的sql语句(增删改查语句)
四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...
- 简单了解SQL(结构化查询语言)
简单了解SQL(结构化查询语言) 年10月,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际 ...
- tp5 r3 一个简单的SQL语句调试实例
tp5 r3 一个简单的SQL语句调试实例先看效果核心代码 public function index() { if (IS_AJAX && session("uid&quo ...
随机推荐
- hdu1505(dp求最大子矩阵)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1505 分析: 这题是HDU 1506 的加强版,定义一个二维数组,d[i][j]表示第i行j列元素在前 ...
- 西南民大oj(两园交求面积)
西南民大oj:http://www.swunacm.com/acmhome/welcome.do?method=index 我的几何不可能那么可爱 时间限制(普通/Java) : 1000 MS/ 3 ...
- Codeforces Round #269 (Div. 2) A B C
先说C 题目链接:http://codeforces.com/problemset/problem/471/C 题目意思:有 n 张卡,问能做成多少种不同楼层(floor)的 house.注意这 n ...
- C:打印菱形(自己的方法)
//-------------------*打印菱形*--------------------- int i,j,k; int n; printf("请输入一个奇数n:"); sc ...
- Java中的statickeyword具体解释
1.statickeyword主要有2个作用: ①为某特定的数据类型或者对象分配单一的存储空间.而与创建对象的个数无关. ②在不创建对象的情况下能够直接通过类名来直接调用方法或者使用类的属性. 2.s ...
- 通过Java反射调用方法
这是个测试用的例子,通过反射调用对象的方法. TestRef.java import java.lang.reflect.Method; import java.lang.reflect.In ...
- 《JavaScript设计模式与开发实践》读书笔记之代理模式
1.代理模式 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问 1.1 一般的图片加载 var myImage=(function () { var imgNode=document.c ...
- CentOS 网络设置修改
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 路由器网关:192.168.1.1 步骤: 1.查看网络MAC地址 [ro ...
- socket用法
INADDR_ANY是ANY,是绑定地址0.0.0.0上的监听, 能收到任意一块网卡的连接:INADDR_LOOPBACK, 也就是绑定地址LOOPBAC, 往往是127.0.0.1, 只能收到127 ...
- Vb.net/VB 声明API功能父窗口功能
回想第一次敲房费,他说自己是api函数实现父窗口及其子窗口最小化的功能.现在再次遇到,自己就在思考,能不能继续使用API函数呢?答案当然是Of Course! 事实上细致看两者并没有多大的差别,先看看 ...