sql_connect 문자셋 설정구문 수정 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

sql_connect 문자셋 설정구문 수정 정보

sql_connect 문자셋 설정구문 수정

본문

lib/common.lib.php 의 1042라인을 아래와 같이 수정해야 할꺼 같습니다.
기존 소스의 @mysql_query에서 @이를 없애고 실행했을때 localhost.ODBC 연결오류 메세지가 출력됩니다.
DB connect 이전에 문자셋 설정쿼리 실행으로 불필요 리소스가 발생합니다.
~최대한 자원을 아껴야죠^^

// DB 연결
function sql_connect($host, $user, $pass)
{  
    return @mysql_connect($host, $user, $pass);
}

추천
0

댓글 6개

안녕하세요. 답변주셨네요^^
반론을 드리자면,,,,,ㅋ
단순히 위처럼 소스를 수정한다고해서 utf-8에서 문제가 발생하진 않습니다.
왜냐면, sql_connect 아래의 sql_select_db에서 문자셋을 설정하기 때문이죠,
오히려 기존 소스에서 문제가 발생하고 있으나 @의 사용으로 메세지가 출력되질 않고 있을 뿐입니다.
참고하세요^^


// DB 선택
function sql_select_db($db, $connect)
{
    global $g4;

    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);
}
저는 utf-8을 안써서 모르겠는데,
불댕팩에서 수정을 했더니 utf-8 쓰시는 분들이 글자가 깨진다고 하더라구요.

utf-8에서 테스트 가능하시면,
처음 connect 할때는 set names utf8을 하지 않고
select할 때, 먼저 select를 하고 다음에 set names를 하게 테스트 해봐 주실래요?

http://www.xpressengine.com/?mid=tip&search_target=tag&search_keyword=%ED%8F%AC%ED%83%88&document_srl=16381475
현재 그누보드 기준으로 common.php 171라인을 보시면

$connect_db = sql_connect($mysql_host, $mysql_user, $mysql_password);
$select_db    = sql_select_db($mysql_db, $connect_db);

으로 되어있습니다.
즉, 위 처럼 sql_connect를 적용했을 경우 정리하자면
아래 순서대로 명령어가 실행됩니다.
제로보드는 2, 3번 순서가 바껴 실행되고 있고요^^;

1. mysql_connect
2. mysql_query(" set names XXX ")
3. mysql_select_db
4. 일반 쿼리 실행(mysql_query)

그리고^^ 현재 제가 운영하고 있는 사이트가 UTF-8입니다.
물론 아무 문제없이 돌아가고 있습니다.ㅎ
전체 102 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT