제 쿼리문이 어디가 이상한걸까요? ㅠㅠ
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 8.1 |
<query id="getBmg" action="select">
<tables>
<table name="bmg_other" />
</tables>
<conditions>
<condition operation="equal" column="target_srl" var="target_srl" filter="number" pipe="and"/>
<conditoin operation="equal" column="document_srl" var="document_srl" filter="number" pipe="and"/>
</conditions>
</query>
위와 같이 xml 쿼리문을 작성했습니다. pipe 조건절을 통해 target_srl 과 document_srl이 모두 만족해야 결과를 도출해내도록 했구요
$args->target_srl = abs($logged_info->member_srl); // 현재 댓글을 작성하려는 작성자의 member_srl
$args->document_srl = $obj->document_srl; // 현재 댓글을 작성하려는 글 번호
$output_i = executeQueryArray('bmg.getBmg', $args); // 내가 차단을 당했나요?
if($output_i->data){
return new BaseObject(-1, '쿼리 만족 결과 찾음!');
}
위는 모듈 코드입니다.
target_srl와 document_srl을 args에 넣어주고 쿼리문을 날렸는데,
현재 DB에는 완벽히 일치하는 데이터가 없음에도 불구하고 if($output_i->data) 내부에 들어가있는게 실행이되네요...
쿼리시 결과가 없을때만 해당 조건을 실행하게 하고싶은데 혹시 제가 잘못 작성한 부분이 있을까요?
댓글 7
debugPrint($output_i) 이렇게 하면 해당 부분에 어떤 에러가 뜨는지 에러문구를 확인할 수 있습니다.
의심되는 부분은 <condition operation="equal" column="target_srl" var="target_srl" filter="number" pipe="and"/> 첫 부분 pipe는 필요가 없습니다. 지워주세요
1. 받아오려는 컬럼을 선언하지 않았네요.
2. 라이믹스 2.0 기준, AND 조건으로만 연결한다면 pipe 속성은 필요하지 않습니다. 넣는다고 손해보지는 않습니다.
3. 마지막 속성과 닫는 태그(/>) 사이를 한 칸 띄어 주세요.
4. $output_i를 디버그 찍어보시면 실제로 어떤 쿼리가 실행되었는지 알 수 있습니다.
두 조건을 모두만족해야 쿼리가 나와야할텐데 하나의 조건이라도 만족하면 바로 커리 결과가 나오네요
<query id="getBmg" action="select">
<tables>
<table name="bmg_other" />
</tables>
<columns>
<column name="block_srl" />
</columns>
<conditions>
<condition operation="equal" column="target_srl" var="target_srl" filter="number" notnull="notnull" />
<conditoin operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" pipe="and" />
</conditions>
</query>
로 수정은 했습니다 ㅠㅠ
conditoin -> condition 오타이군요...