묻고답하기
insert xml 쿼리문
2018.01.14 17:17
안녕하세요.
쿼리문에서 자꾸 오류가 나서 질문드립니다.
게시판 모듈을 생성할때 xe_document_extra_key 테이블에 확장변수를 같이 생성하려고 다음과 같은 구문을 작성했습니다.
위 구문에 자꾸 에러가 나서 다른 xml문을 입력해 보니 에러가 나지않아 문제는 xml 문 같습니다.
xml문은 아래와 같습니다.
아래는 xe_document_extra_keys table의 스키마 입니다.
에러 내용은 아래와 같습니다.
Fatal error: Uncaught Error: Call to undefined method StarExpression::getValue() in D:\xampp\htdocs\xe\classes\db\queryparts\Query.class.php:437 Stack trace: #0 D:\xampp\htdocs\xe\classes\db\DB.class.php(978): Query->getInsertString(false) #1 D:\xampp\htdocs\xe\classes\db\DBMysql.class.php(567): DB->getInsertSql(Object(Query), false, true) #2 D:\xampp\htdocs\xe\classes\db\DBMysqli.class.php(338): DBMysql->_executeInsertAct(Object(Query), false) #3 D:\xampp\htdocs\xe\classes\db\DB.class.php(634): DBMysqli->_executeInsertAct(Object(Query)) #4 D:\xampp\htdocs\xe\classes\db\DB.class.php(563): DB->_executeQuery('D:/xampp/htdocs...', Object(stdClass), 'board/skins/mai...', NULL, 'slave') #5 D:\xampp\htdocs\xe\config\func.inc.php(222): DB->executeQuery('board/skins/mai...', Object(stdClass), NULL) #6 D:\xampp\htdocs\xe\files\cache\template_compiled\08fc24fa7ffe160cf3a9266bb81972cd.compiled.php(29): executeQueryArray('board/skins/mai...', Object(stdClass)) #7 D:\xampp\htdocs\xe\classes\template\TemplateHandler.class.php(384): inc in D:\xampp\htdocs\xe\classes\db\queryparts\Query.class.php on line 437
개발자 메뉴얼의 xml insert 예시를 그대로 따라한 것인데 오류가 납니다 ㅠㅠ
혹시 아시는 분 있으시면 해결책 좀 부탁드려요
- [2023/03/07] 묻고답하기 서버이전 후 오류.. ㅠ *1
- [2022/09/13] 묻고답하기 이 애러문구 혹시 해결 가능할지... *1
댓글 2
-
sejin7940
2018.01.15 01:18
-
너무잠이와요
2018.01.15 18:10
세진님 항상 친절한 답변 감사합니다.
저의 의도는 만들려는 스킨에 여분필드를 자동으로 생성하여 사용자가 스킨 설치시에 여분필드를 일일이 생성하지 않게 하려고 하는 것입니다.
이전의 세진님이 주신 답변과 메뉴얼 상에서 봤을때 executeQuery함수에는 모듈명과 xml파일명이 인자로 들어가며 xml 파일은 module/board/quries에 들어가는 것이 맞습니다.
그러나 그렇게 되면 스킨을 설치할때 스킨만 설치를 하는 것이 아니라 module/board/quries/insertExtraVar.xml 파일을 업로드 해야하는 번거로움이 있습니다.
그래서 스킨 설치만으로 모든것이 해결 가능하도록 이것 저것 찾아 보던 중 ($query_path.xml파일명)으로도 해당 xml에 접근이 가능 한것을 찾았습니다.
제가 작성한 소스 중 6번째 라인을 보시면 $output = executeQueryArray($skin_path.'.getExtraVar', $obj) 를 print_r($output)로 결과 값을 확인 결과 잘 출력이 되는 것을 확인 하고 insertExtraVar.xml 또한 위의 방식으로 작업 중 오류가 나서 질문을 드린 것 입니다.
$query_path = $module_info->module."/skins/".$module_info->skin;
$outputExtraVars = executeQueryArray($query_path.'.insertExtraVar', $obj);
executeQueryArray 에서 첫변수는 실제 주소를 의미하는게 아니에요
모듈명.쿼리파일명 이 규칙입니다.
해당 쿼리는 modules/모듈/queries/ 내부에 있어야하고요