$g5['connect_db'] 에 관하여

$g5['connect_db'] 에 관하여

QA

$g5['connect_db'] 에 관하여

본문

안녕하세요,

소중한 답변들 감사합니다.

이번에는 $g5['connect_db'] 에 대해선데요

 

 

1).   $g5['connect_db']가 정의된 변수는 common.php에서만 볼 수 있는데 $g5['connect_db']는 모든 스크립트 전체에서 $connect_db 변수값이고  $g5['connect_db'] = sql_connect(G5_MYSQL_HOST, G5_MYSQL_USER, G5_MYSQL_PASSWORD) 로 통하는 건가요? 

 

2).   install_db.php를 통하여 dbconfig.php가 생성되어, 그 안에 sql 쿼리로 만들어진 테이블과 항목들이 변수 정의로 나타나잖아요. 예). $g5['config_table'] = g5_config, $g5['member_table'] = g5_member, 등등요. 이 $g5 배열 변수 값들은 실제로 sql로 만들어진 테이블로 존재하잖아요 gnuboard.sql 확인하면 알 수 있듯이요.

      그런데 $g5['connect_db'] 는 단순히 배열 형태로만 있고 이에 해당하는 테이블은 존재하지 않는거죠? 존재하지 않는다면, 뭐하러 굳이 배열에 저장하는지 이해가 안 가서요. 설명서 보니까 "어떤 상황에서 디비 연결을 끄거나 쿼리를 전송할때 따로 변수를 인자로 넘기지 않더라도 쓸수 있도록 하기 위해" 라 나와있는데 이 부분 또한 이해가 안 갑니다. connect만 두고 본다면 db가 오가지는 않고 호스트, 유저, 패스 값만 넘기지 않나요?

 

아이고 머리 아프네요..

감사합니다

이 질문에 댓글 쓰기 :

답변 1

1) 네 해당 그누보드의 mysql 접속 정보를 담고있습니다

그리고 common.php파일은 그누보드 모든 파일 최상단에 include되고있는걸 확인할 수 있습니다

 

2) $g5['connect_db']는 혹시 DB접속시에 쉽게 접속할 수있도록 배열에 담아놓은 DB접속 정보입니다

$g5['member_table']등과는 상관이없어요 $g5['member_table']등은 테이블의 명칭들을 담아놓은 변수들이구요

$g5['connect_db']는 접속정보입니다 mysql에 접근하기 위한

그리고 배열에 담아놓는 이유는 lib/common.lib.php 함수 sql_query를 보시면 DB접속에 쓰이고있는걸 확인할 수 있습니다

 

답변 감사합니다.

2번에서, 제가 궁금한 이유는 왜 굳이 $connect 변수를 $g5['connect_db'] 로 배열화했는지에요. 예를 들어 lib/common.lib.php에 sql_query 함수에 왜 $link = $g5['connect_db'] 대신에 그냥 $link = $connect 안 하는지요

sql_query()함수에서
mysql_query($sql, $g5['connect_db'])<--이렇게 써야하니 $g5변수에 넣어두어서
global $g5하면 함수내에서 사용 가능하니 편리하죠

또한 다른 디비 접속이 필요한 경우에도 접속을 이 디비 저 디비 왔다갔다 할 때
저렇게 저장해 놓은 값이 필요할 수 있습니다

균이 님께 다시 정리해서 여쭤요

"mysql_query($sql, $g5['connect_db'])<--이렇게 써야하니 $g5변수에 넣어두어서
global $g5하면 함수내에서 사용 가능하니 편리하죠 " 에서요,

$link=$g5['connect_db'] 정의 이유를 물은게 아니라.
$connect=$g5['connect_db'] 정의 이유를 물은거에요.

애초에 global $connect 쓴 다음
$link = $connect 로 정의하는것과 어떤 차이점이 있는지요


if (file_exists($dbconfig_file)) {
    include_once($dbconfig_file);
    include_once(G5_LIB_PATH.'/common.lib.php');    // 공통 라이브러리

    $connect_db = sql_connect(G5_MYSQL_HOST, G5_MYSQL_USER, G5_MYSQL_PASSWORD) or die('MySQL Connect Error!!!');
    $select_db  = sql_select_db(G5_MYSQL_DB, $connect_db) or die('MySQL DB Error!!!');

    // mysql connect resource $g5 배열에 저장 - 명랑폐인님 제안
    $g5['connect_db'] = $connect_db;

    sql_query(" set names utf8 ");
    if(defined('G5_MYSQL_SET_MODE') && G5_MYSQL_SET_MODE) sql_query("SET SESSION sql_mode = ''");
    if (defined(G5_TIMEZONE)) sql_query(" set time_zone = '".G5_TIMEZONE."'");
}


그누보드는 변수 $g5에 많은 정보를 같이 담고있습니다

작성자분이 말씀하신것처럼 써도 됩니다 별차이는 없어요

$connect에 담아서 써도 되지만 이미 사용하고있는 배열 $g5에 같이담아

한번에 불러오기 편하게 하기 위함인것같습니다

답변을 작성하시기 전에 로그인 해주세요.
전체 282
QA 내용 검색

회원로그인

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