제목 | ci4 에서 $builder->countAllResults() 결과값이 원하는대로 나오지 않아서 여쭤봅니다. | ||
---|---|---|---|
카테고리 | CI 4 관련 | ||
글쓴이 | 지누으누 | 작성시각 | 2020/09/17 13:18:47 |
|
|||
우선 ilgram_member 이라는 테이블이 존재하며 데이터로는 "manager"라는 아이디를 갖는 레코드가 하나 존재합니다. 조건에 따른 결과값 개수를 나타내는 countAllResults()을 확인하고자 다음과 같은 코드를 작성하였습니다. $builder->select('*'); $builder->where(['mb_user_id' => "test"]); echo ("query:" . $builder->getCompiledSelect()); echo ("<br>"); echo ("total count:" . $builder->countAllResults());
이런식으로 작성 후 결과값을 확인하였는데, query:SELECT * FROM `ilgram_member` WHERE `mb_user_id` = 'test' total count:1 이렇게 결과값이 나왔습니다.
제가 알기로는 countAllResults() 는 where 절에 따른 결과개수가 노출이 된다고 알고 있는데, total count 값이 0 아닌 1이 나오는 이유를 잘 모르겠습니다. 혹시 제가 무언가를 잘못 알고 있는것일까요? 고수님들의 도움 부탁드립니다.
|
|||
첨부파일 |
쿼리.jpg (16.9 KB) |
||
다음글 | ci3 mssql 프로시저 output 출력 도움요청합... (5) | ||
이전글 | 외부DB 연결 (2) | ||
변종원(웅파)
/
2020/09/17 16:28:19 /
추천
0
|
지누으누
/
2020/09/17 16:35:16 /
추천
0
SELECT * FROM `ilgram_member` WHERE `mb_user_id` = 'test' 의 결과가 0 이 나와야 하는데...1 이 나와서요..^^ 왜 그러는지 좀더 연구중입니다. ^^ |
PureAni
/
2020/09/17 17:16:33 /
추천
0
/system/Database/BaseBuilder.php 에 보시면 getCompiledSelect 함수가 있습니다. 그곳에 보면 public function getCompiledSelect(bool $reset = true): string 라고 되어있지요. 즉, getCompiledSelect 함수 호출 시점에서 쿼리 리셋되었기 때문에 0이 안나오고 1이 나오는겁니다. 전체 데이터 수를 리턴하니까요. |
지누으누
/
2020/09/17 18:11:50 /
추천
0
아...그렇군요...ㅠㅠ... 감사합니다.
|
1개 있어서 1이라고 나온거 아닌가요?
SELECT * FROM `ilgram_member` WHERE `mb_user_id` = 'test' <- 이 결과는 몇개 나오는건가요?
SELECT * FROM `ilgram_member` WHERE `mb_user_id` = 'manager' 이어야 원하시는 결과가 나오겠네요. ^^