묻고답하기
[도와주세요] 인증 세션 DB 사용시 외부페이지 쿼리 에러발생
2016.09.13 15:04
안녕하세요
xe에 쿼리문을 사용하는 외부페이지를 연동에서 사용하고있는데요
인증 세션 DB를 사용하지 않으면 작동이 잘되는데
인증 세션 DB사용시 작동에 다음과 같은 에러메시지가 발생합니다.
Fatal error: Call to undefined method Object::executeQuery() in /host/home1/계정명/html/config/func.inc.php on line 206
외부페이지에는 xe member_srl을 얻기위해 다음과 같은 내용이 들어있구요
define('__XE__',true);
require_once("/host/home1/계정명/html/config/config.inc.php");
$oContext = &Context::getInstance();
$oContext->init();
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
$wdate = date(ymd);
또 insert와 select 쿼리문을 사용하였습니다.
쿼리는 xml이 아닌 mysql_connect($db_server, $db_user_name, $db_password); 과 같이 코드를 사용했구요
xe_가 붙지 않은 db 테이블을 사용하였습니다.
오류메시지에나온 func.inc.php 의 206번 라인에는 다음과 같은 내용이 삽입되어있구요
function executeQuery($query_id, $args = NULL, $arg_columns = NULL)
{
$oDB = DB::getInstance();
return $oDB->executeQuery($query_id, $args, $arg_columns);
}
내용을 보니 쿼리에서 오류가 생긴거 같은데 어떻게 대처해야 할지 잘모르겠습니다. 도움부탁드립니다.
db.config.php의 db 및 호스팅 계정명등은 모두 정확히 기재되어있고
문제는 인증 세션 DB 사용할때만 생기네요
댓글 2
-
기진곰
2016.09.13 20:41
-
살소리
2016.09.14 00:17
답변감사합니다
Mysql_close는 인증세션을 사용하지않았을때도 발생했던문제였던터라 이전에 mysql_close 문구는 모두지워서 없는상태에요
도무지 원인을모르겠네요
회원들은 로그인이 유지가안된다고 아우성인데 인증세션을끼면 오류가나버리니 고민이네요
외부페이지가 문제인 것 같습니다.
혹시 외부페이지에서 작업을 마친 후 mysql_close를 호출하고 있나요? 그러면 DB 연결이 끊어지기 때문에 외부페이지 호출 후에 XE에서 마무리 작업을 못 하게 됩니다. (XML을 사용하지 않고 다른 테이블에 접근하더라도 DB 연결은 모두 공유하므로 한 쪽에서 끊으면 다 끊깁니다.)
인증 세션 DB 사용시에는 반드시 마무리 작업이 필요하므로, DB 연결이 끊기면 오류가 발생합니다. XE와 연동하는 외부페이지에서는 절대 DB 연결을 끊지 마세요.