$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접속에 쓰이고있는걸 확인할 수 있습니다
답변에 대한 댓글 4개
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."'");
}
[/code]
그누보드는 변수 $g5에 많은 정보를 같이 담고있습니다
작성자분이 말씀하신것처럼 써도 됩니다 별차이는 없어요
$connect에 담아서 써도 되지만 이미 사용하고있는 배열 $g5에 같이담아
한번에 불러오기 편하게 하기 위함인것같습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
2번에서, 제가 궁금한 이유는 왜 굳이 $connect 변수를 $g5['connect_db'] 로 배열화했는지에요. 예를 들어 lib/common.lib.php에 sql_query 함수에 왜 $link = $g5['connect_db'] 대신에 그냥 $link = $connect 안 하는지요