做php的经常会对一些开源产品进行二次开发,刚开始不了解其业务逻辑,数据结构等,理解其代码来比较麻烦。所以我写了一个简单的php脚本,来监控每一次请求的执行的所有sql,通过看sql来理解其业务逻辑。
sql_debug.php代码如下:
<?php
//使用方法:
//1:在使用的框架的核心入口文件里面包含include '' 包含此文件
//2:找到核心mysql数据库访问类的查询方法,在里面加上echosql($sql, "input");
//3:浏览器访问sql_debug.php?mode=1就可以看到sql了。
//输入输出sql
function echosql($sql,$type){
$file = dirname(__FILE__) . '/sql_debug.txt';
if($type=="input"){
file_put_contents($file, $sql.PHP_EOL,FILE_APPEND);
}elseif ($type=="output") {
$data = file_get_contents($file);
unlink($file);
$data = str_replace(PHP_EOL,"<br>",$data);
echo $data;
}else{
die("需要参数");
}
}
if($_GET['mode']==1){
error_reporting(E_ALL);
ini_set( 'display_errors', 'On' );
echosql('',"output");
}