제목 | DB_query_builder . 2358 line 문의 드려요! | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 다다닷 | 작성시각 | 2017/07/04 12:01:31 |
|
|||
안녕하세요. 이건 preg_match 함수에 한번에 처리할 수 있는 데이터 크기 이상으로 전달 했을때 발생하는 문제로 확인됩니다. 어떤 상황이냐 하면 쿼리에서 where_in 조건 내 string 값을 약 6만개를 던져 버리니 위 DB_query_builder.php 파일 2358 line 에서 preg_match 함수 오류를 표시하는데 간단하게 해결한 방법은 where_in 조건 내 값을 일정 개수 만큼 잘라서 던져 현재 처리는 했습니다. 하지만 DB_query_builder 내에서 처리를 해버릴 수 있다면 조금더 중복코드를 제거 할 수 있지 않을까 하는 생각에.. 해당 파일 내 코드를 어떤 형식으로 변경 해보면 좋을까 싶어 조언을 얻고자 문의 드립니다. |
|||
다음글 | 게시판 검색기능 (3) | ||
이전글 | CI 이메일 전송 궁금한점 있습니다! (2) | ||
한대승(불의회상)
/
2017/07/04 12:23:43 /
추천
0
서브쿼리를 사용하는게 더 효율적이지 않을까요?
|
다다닷
/
2017/07/04 12:28:14 /
추천
0
@한대승(불의회상)님 안녕하세요^^ where_in 은 말그대로 일치하는 녀석들만 뽑기 위함인데 여기에 서브쿼리라 함은 어떤 모양을 말씀 하시는건가요?? |
한대승(불의회상)
/
2017/07/04 12:29:30 /
추천
0
$this->db->where_in('col_name', '(select col from db where col=1)', false); 6만개 정도의 데이터라면 DB에서 가져올거라 생각되어서요. |
다다닷
/
2017/07/04 13:36:43 /
추천
0
@한대승(불의회상) 제가 where_in 함수를 좀더 봐야겠네요 ^^ 감사합니다!! -- 일단 쿼리 자체에 SELECT ( 서브쿼리 ), ( 서브쿼리 ), FROM table WHERE IN ( 'col1', array() ); 위와 같은 형태라 .. DB에서 가져오는건 맞습니다. 조금 더 생각을 해봐야겠네요! 감사합니다. |