묻고답하기
외부페이지 DB 불러오기가 왜 안될까요?
2019.02.15 10:15
일단 기본적인 DB 불러오는지만 보려고
간단히 문서 하날 만들었습니다.
------------------------------------------------------------------------------------------------------
define('__XE__', true);
require_once('config/config.inc.php');
$oContext = &Context::getInstance();
$oContext->init();
$logged_info = Context::get('logged_info');
$user_id = $logged_info->user_id;
$user_name = $logged_info->user_name;
$email_address = $logged_info->email_address;
$Table1="test_db";
$Res = Mysql_Query("select * from $Table1 where idx='1'");
$Row = Mysql_Fetch_Array($Res);
$name = $Row[name];
echo "Name : ".$name;
------------------------------------------------------------------------------------------------------
외부 페이지에 넣고 하면 해당 DB값을 불러오질 못하네요
(정확히는 XE DB의 다른 테이블의 값을 불러오질 못합니다.)
저 테스트 파일을 외부페이지가 아닌 주소창에 경로를 입력해서 불러오면 DB는 불러집니다.
물론 db설정 include는 바꿔줬습니다.
예를들어 직접 접근은 http://domain.com/test.php 이고
외부페이지 설정에선 http://domain.com/test 로 설정하고 외부페이지에서 경로를 ./test.php 이런식으로
설정했습니다.
파일 자체는 잘 불러옵니다.
문제는 똑같은 소스를 다른 XE보드가 설치된 곳에서 DB를 만들고 외부페이지를 넣고 하면 정상적으로 불러옵니다.
뭐가 문제일까요?
하나 차이가 있다면
정상적으로 DB가 불러와지는 XE는 http://domain.com/xe 폴더 형태로 설치되어 있고
DB를 못불러오는 XE는 http://domain.com/ 형식으로 루트에 설치되어 있습니다.
둘 모두 XE메인 dB의 로그인 정보는 불러올 수 있습니다.
외부페이지에서 Mysql_Query 이런 함수를 못쓰나요?
다른 서버에 설치된 XE에서 되는거 보면 아닌 것 같고 아님 다른 설정을 건드려 줘야 하는건가요?
댓글 2
-
sejin7940
2019.02.15 12:21
-
CtrlV
2019.02.15 12:51
제가 잘 몰라서 그런건데 require_once('config/config.inc.php');
여기에 mysql_connect 이 정보는 없는건가요? XE DB에 테이블을 새로 만들어서 넣은거거든요
그리고 무엇보다 같은 서버내에 설치된 다른경로의 XE(같은버전) 에선 똑같은 소스로 실행이 됩니다.
그래서 더더욱 모르겠네요 ㅠㅠ
보내주신 링크를 참조해서 한번 해보겠습니다. 감사합니다.
mysql 을 쓰려면 DB 접속부터 하셔야죠
DB 정보를 불러와 mysql_connect 로 접속부터 한 후 사용해야합니다
(php 버전에 따라 mysqli_connect 를 써야할 수도 있고요 )
아니면 XE 의 함수를 활용해 oDB 형태
구글에 XE , oDB 검색하면 나올겁니다 ( https://www.google.com/search?q=xe+oDB&oq=xe+oDB&aqs=chrome..69i57j0l5.2552j1j8&sourceid=chrome&ie=UTF-8 )
로 해서 사용하셔도 되고요 ( mysql 구문은 그대로 쓸 수 있는데 명령어가 정해져있죠 )