PHP

PHP 디버깅을 위한 쿼리문이나 변수 출력

큰세상2000 2024. 2. 5. 11:35
반응형

 

개인적으로 쿼리나 디버깅은 화면에 쭈욱 뿌려지는걸 좋아하는 스타일이라서

아래와 같이 화면에 그냥 나타나는걸 좋아합니다.

쿠키나 세션을 사용해서 나에게만 보이도록...

 

아래 2개는 그때 그때 상황봐서...
 ini_set ( 'display_errors', 'On' );
$db->debug = true;

 

 

-- _listOrder_user :
SELECT x.claim_step, b.ea, b.cancel_ea, b.refund_ea, a.seq, a.code, a.regdate, b.store_seq, a.payment_seq, a.buyer_name, a.payment_kind, a.receiver_name, a.delivery_method, a.step, a.goods_price, a.delivery_price, a.payment_price, b.seq AS item_seq, b.pc, b.revie.....


-- listMyQna_user :
SELECT a.*, IF ( ISNULL(b.qna_seq), '답변대기', '답변완료' ) AS flag, c.name AS product_name, d.name AS goods_name, m.shop_name, m.manager_telephone FROM vgs.member m, vgs.product_qna a LEFT OUTER .....

 


 

 

▼  PHP  echo 함수 대체용

function echos( $name=null, $sql=null)
{

    if (empty($sql ))
    {
        if ($_SESSION["debugBOB"] == "Y") {
            if (!empty($name))
            {
                echo "<br/><br/>## <b><font color=red>" . $name . " : </font></b> ";
            }

            echo "<br/> ";
        }

        return $_SESSION["debugBOB"];
        exit();
    }

    if ($_SESSION["debugBOB"] == "Y") {
       echo "<br/>-- <b><font color=red>" . $name . " : </font></b><br/>" . $sql . "; <br/><br/>";
    }
}

 

 

 

▼ 디버깅 문구 모두 출력하기 ( aaa.php )

<?php
session_start();
$_SESSION["debugBOB"] = "Y";
?>

 

 

▼ 디버깅 문구 모두 숨기기 ( bbb.php )

<?php
session_start();
$_SESSION["debugBOB"] = "N";
?>

 

 

 

▼  내부 echo 문 출력하기

if (echos("mall_seq만 필터링")=="Y") {
    for ($ii = 0; $ii <  count($arr_filter_mall_seq); $ii++) {
        echo ($arr_filter_mall_seq[$ii] . '<br/>');
    }
}

 

## mall_seq만 필터링 :
29

 

 

▼  값 하나 바로 출력하기

 echos("\$_total_price : ", $_total_price);

 

-- $_total_price : :
380000;

 

 

▼  쿼리문 출력하기

// __FUNCTION__ 은 지금 호출된 함수 이름을 반환한다

function listEst_user($auction_seq)
    {
        $sql = "SELECT count(seq) as count ";
        $sql .= " FROM order " ;
        
        echos(__FUNCTION__, $sql);
        
        $return = $this->db->GetAll($sql);
        
        return $return;
    }

 

-- listEst_user :
SELECT count(seq) as count FROM order;

반응형