포럼
executeQuery() 함수 리턴값에 변경사항이 있나요?
2012.08.06 22:48
$output = executeQuery($args) 함수로 결과 값을 받는데요.
결과값이 없으면
$output->data = NULL; // 변수자체가 메모리에 할당 안됨
이었는데
지금은
$output->data = array(); // 값이 없는 배열
로 나오네요.
이것땜에 기존에 짜놓은 프로그램에 문제가 생기네요 ㅜㅜ
혹시 변경된 사항을 아시는 분 있으면 알켜주세요. 미치겠음. ㅜㅜ
댓글 4
-
퍼니엑스이
2012.08.06 23:16
-
엑스셀코드
2012.08.07 00:23
네. 저도 그렇게 알고 사용했는데요.
지금 executeQuery() 리턴값에
값이 없으면 $output->data=NULL;
이어야 하는데요.
$output->data = array(); 빈 배열이 넘어와서 문제 입니다.
-
엑스셀코드
2012.08.07 00:51
혹시나 변경된 사항이 있다면
아시는분은 답변 좀 부탁드립니다. ㅜㅜ
-
sejin7940
2013.05.24 17:53
예전 글이지만, 저도 오늘 이런 현상이 생겨서..
테스트 해 본 결과 이유를 찾아내서, 적어둡니다. 분명 같은 일 겪으신 분들이 있을듯해서 ^^
executeQuery 를 이용하더라도
해당 query 문 안에 navigation 부분이 있는 경우
배열로 값이 return 되네요
따라서 query 문을 확인하셔서 하단의 navigation 부분을 지우시든지
아니면 이 navigation 을 쓰는 다른 곳이 있어서 query 를 고칠 수 없으면
navigation 부분이 없는 query 를 새로 하나 추가해서, 이 쿼리로 연결하시면 됩니다.
이 현상이 버그인지, XE 측에서 의도한건지는 모르겠네요
일단 Issue 에 등록해두고, 수정전이나 이전버전에서 이런 문제가 발생할 경우 참고하세요 ^^
executeQuery()는 말씀하신 것 처럼 데이터가 없으면 NULL값이 반환되고요
executeQueryArray()는 데이터가 없거나 1개라도 무조건 배열로 반환됩니다.