본문
작성: freeimage.kr 081226 김성대
목적: 얼마나 많은 쿼리가 중복 실행되고 있는가 살펴보자..
1. common.php 에
공용변수 난에 추가한다..
기록을 사용하지 않으면 막으면 된다..
set_session("sql_debug_file","$g4[path]/../tmp/".date("ymd").".sql.rec");
이 파일명은 html로 접근이 안되는곳에 위치해야한다.
common.lib.php 을 다음과 같이 수정한다.
//SQL 기록 session 값이 정의가 되면 그 파일에 기록한다.
function sql_history($sql) {
if ($_SESSION["sql_debug_file"]) {
$fp=fopen($_SESSION["sql_debug_file"],"a+");
$a=explode(" ",microtime());
fputs($fp,date("ymd His",$a[1])."\t$a[0]\t".getenv("REMOTE_ADDR")."\t".$sql."\n");
fclose($fp);
}
}
// DB 연결
function sql_connect($host, $user, $pass)
{
global $g4;
sql_history("sql_connect $host, $user, $pass, ".$g4[charset]);
if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
return @mysql_connect($host, $user, $pass);
}
// DB 선택
function sql_select_db($db, $connect)
{
global $g4;
sql_history("sql_select_db $host, $user, $pass, ".$g4['charset'] );
if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
return @mysql_select_db($db, $connect);
}
// mysql_query 와 mysql_error 를 한꺼번에 처리
function sql_query($sql, $error=TRUE)
{
sql_history("sql_query $sql");
if ($error)
$result = @mysql_query($sql) or die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : $_SERVER[PHP_SELF]");
else
$result = @mysql_query($sql);
return $result;
}
// 쿼리를 실행한 후 결과값에서 한행을 얻는다.
function sql_fetch($sql, $error=TRUE)
{
sql_history("sql_fetch $sql");
$result = sql_query($sql, $error);
//$row = @sql_fetch_array($result) or die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : $_SERVER[PHP_SELF]");
$row = sql_fetch_array($result);
return $row;
}
댓글목록
등록된 댓글이 없습니다.