phpcms v9의 debug 함수

2236 단어 phpcms
function usedtime(){
	$stime = explode(' ', SYS_START_TIME);
	$etime = explode(' ', microtime());
	return number_format(($etime[1] + $etime[0] - $stime[1] - $stime[0]), 6);
}
function debug(){
		if(!pc_base::load_config('system','debug') || defined('HTML')) return false;
	$myip = array(' debug ip ');
	pc_base::load_sys_class('db_factory', '', 0);
	$sql_status = db_factory::get_instance();
	$mysqlserver = pc_base::load_config('database');// sql
	$count = $querystr = array();
      foreach($mysqlserver AS $k=>$v){
	  $db_list = $sql_status->get_database($k);
	  $count[] = $k.':'. $db_list->querycount;
	  $querystr[] = $k.':'. implode(';<br />',$db_list->querystr);
	  }
	  $count = implode(';',$count);
      $querystr = implode(';',$querystr);
	  $output = '<table><tr><td> </td><td>'.usedtime().'</td></tr><tr><td>sql </td><td>'.$count.'</td></tr><tr><td>sql </td><td>'.$querystr.'</td></tr></table>';
	return in_array(ip(),$myip) ? $output : '';
}

 
 
만약 다중 데이터베이스 서버를 사용한다면, 모든 서버의 조회 횟수를 통계할 수 있다.
 
또한 실행된 sql를 모두 출력하려면 mysql를 추가로 수정해야 합니다.class.php
변수 정의public $querystr =array () 추가;
다음 방법을 수정합니다.
	private function execute($sql) {
		if(!is_resource($this->link)) {
			$this->connect();
		}
		$stime = explode(' ', microtime());
		$this->lastqueryid = mysql_query($sql, $this->link) or $this->halt(mysql_error(), $sql);
		$etime = explode(' ', microtime());
		$sec_time = number_format(($etime[1] + $etime[0] - $stime[1] - $stime[0]), 6);
        if(pc_base::load_config('system','debug')) $this->querystr[] = $sql.'('.$sec_time.')';
		$this->querycount++;
		return $this->lastqueryid;
	}

좋은 웹페이지 즐겨찾기