포럼
executeQuery 버그?
2013.04.29 20:09
executeQuery의 데이터 유형인식에 관한 문제입니다.
문자형데이터를 보내는데, 숫자형데이터로인식하는 경우가 있습니다.
ex)
$args->is_notice = 'Y';
$output = executeQuery('aaaa.getDocument',$args);
result)
echo $output->variables[_query];
select * from `xe_document` where `is_notice` = Y;
이렇게나옵니다.
당연히 Y라는 필드가없다고 오류가나지요..
그외에
아이핀 본인인증서비스를 위한 CI값 등을 보냈을때에도 같은문제가 발생합니다.
문제확인부탁드립니다.
댓글 6
-
퍼니엑스이
2013.04.29 21:58
-
모그422
2013.05.05 10:48
디비 스카마 xml 을 생성하지 않은건 아니신지요? -
Xiso
2013.05.07 20:00
스키마는 없더라도,
class에서 oDB->addColumn 등의 함수를 이용하여 alter를 해두었는데 그게 적용이 안된다면, 문제가있지않을까요?
-
라르게덴
2013.05.07 20:28
예전 경험인데 스키마에 Type이 varchar와 같은 경우 파싱할때 ''로 내보내고 number나 정의되어있지 않으면 따옴표없이 내보냈습니다. 1.7에서는 제가 테스트를 해보진 못했지만 우선 XE기본 로직은 스키마 파일의 type을 참조하여 파싱할때 문자형으로 처리할지 계산한다는 겁니다. 우선 스키마를 정의하시는게 XE 규칙에 맞을것 같습니다.
-
Xiso
2013.05.25 15:50
예를들어, member table의 경우
다른 모듈에서 oDB->addColumn 을 통해 필드를 추가하면, 추가할때 분명히 데이터유형을 VARCHAR 으로 정의했음에도 불구하고 쿼리를날리면 따옴표없이 내보내고있더라구요.. 문제가있는게아닐까요;
-
라르게덴
2013.05.25 18:53
일단 XML query를 파싱할때 스키마파일의 데이터형을 참조한다는게 XE의 규칙이니까요... 문제를 따지자면 규칙을 통하지 않고 타 모듈용 테이블에 컬럼을 집어넣은것 부터가 문제가 아닐까요? 어쨌든 이것이 문제점이라면 구글 이슈를 통해 개발진과 상의하는게 빠를 듯 합니다. ^^
여기에 올리시는 것보다 코어 이슈에 올리시는게 좋을 것 같네요.
저도 1.5 버전에서 동일한 문제를 겪은 적이 있는데 파묻혀서 그런지 아직까지도 수정이 안되고 있네요.
이슈 한 번 쏴주시면 해결될것 같아요ㅎㅎ