채택완료

변수 질문

2015-03-11 (수) 12:21:58 2,516

그누4 -> 그누5 변환 작업중입니다.

1. 그누4의 config.php에서 : $g4['member_table']        = $g4['table_prefix'] . "member";        // 회원 테이블

   선언이 되어 있습니다. -------> $g4['member_table'] = g4_member 가 됩니다.

2. g4_import_run.php에서 쿼리문을 $sql = "select * from {$g4['member_table']}"; 로 돌리면 아무런 데이터를

   읽지 못합니다.

3. g4_import_run.php에서 쿼리문을 $sql = "select * from g4_member"; 로 돌리면 모든 데이터를 읽어 옵니다.

echo $g4['member_table']을 하면 null이 뜨네요.

변수선언이 이해가 안되서 생기는 문제인거 같은데 상수도 아니고 배열변수도 아니고, 왜 이런지 좀 알려주세요.

더불어 쿼리선언문에 {$g4['meber_table']} 처럼 {}기호가 쓰이는 이유도 함께 부탁드립니다. 

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트

g4_import_run.php 166라인 

require($g4_config_file);에서

$g4_config_file을 g4의 config.php 파일의 경로를 정확하게 줘 보세요.

경로에 문제가 있으니 $g4['member_table']을 제대로 인식하지 못하는 듯 싶네요.

그리고 변수명에 {}(curly brace)가 들어가는 이유는

변수명을 명확히 하고자 할 때 사용합니다.

예를 들어 banna를 출력하고자 할 때 

$var = "ban";

echo "This is a $varna."; 이라 작성하면 undefined variable 에러가 뜨겠죠.

echo "This is a {$var}na."; // 그래서 변수명을 명확하게 하기 위해 중괄호를 사용합니다 ㅎㅎ 

답변에 대한 댓글 1개

config.php 파일은 정확하게 불러오고 있습니다.

echo $g4['member_table']; 실행하니 아무런 출력값이 없는 이유는 뭘까요?

참고로 단독서버이며, php버전 5.3.28, mysql버전 5.1.73 이고, 아직 도메인을 연결하지 않아
ip로 접근하고 있습니다.
2015-03-11 (수) 17:24:58

결국은 ./g4conf/config.php 파일의 전체 내용을

g4_import_run.php 파일에 삽입하여 이전을 완료하였습니다.

./g4conf/config.php 파일을 못읽어서 생긴 문제인 것 같습니다.

그러나, 분명 서버상에 루트/g4conf/config.php 파일은 존재하고 있었고,

g4_import_run.php에서 echo $g4_config_file 을 하면 ./g4conf/config.php 가 출력되었습니다.

config.php파일의 내용을 못읽은 이유가 정말 궁금하네요~~ 

답변에 대한 댓글 1개

2015-03-11 (수) 17:46:44
네 제가 볼 수 있다면 어떻게 말씀드리겠지만
그렇지 못해 아쉽습니다.
g4와 g5가 설치된 것을 잘 보시면 잘 해결되겠지요 ^^

답변을 작성하려면 로그인이 필요합니다.