CI 묻고 답하기

제목 액티브 레코드 캐쉬 사용시 백틱 문제
글쓴이 헤덥 작성시각 2014/12/08 18:00:35
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 14368   RSS
우선 
$this -> db -> select("if(a = b , 'T' , 'F') as test" , false); 
를 시키면 셀렉트 부분에 백틱 제거가 가능하단걸 알고 있습니다.
서브쿼리나 내장함수 조건절등을 너을때 사용하고 있고요..
근데 문제는 액티브 레코드의 캐쉬를 넣으면 백틱보호가 false 가 먹지 않습니다. 특히 저 IF 절이 안되더군요. 

저는 페이징처리를 하는데  보통 캐쉬를 많이 넣는데, 

$this -> db -> select("count(id) as count" , false);

$this -> db -> start_cache(); //캐쉬 설정 
$this -> db -> where('aaa' , 1);
$this -> db -> order_by('aaa' , 'desc');
$this -> db -> group_by('bbb');
$this -> db -> from('table')
$this -> db -> stop_cache(); // 캐쉬 종료 

$count = $this -> db -> get() -> row -> count; 

//페이징처리 계산을 하고  $limit 과 $offset 값을 설정하고 

$this -> db -> select("IF(id = 1 , 'T' , 'F' ) as test" , false);
$this -> db -> limit($limit , $offset);
$result = $this -> db -> get();
$this -> db -> flush_cache();


우선 처리구조는 저런식으로 돌아가고 있습니다. 
어쩃든 마지막 커리구조를 보면 두번째에 if 문을 쓴 셀렉트 쿼리가 백틱보호가 되어서 들어갑니다.

select IF(id = 1, `'T'` , `'F'`) from 어쩌구 where 저쩌구 group_by 이렇게 limit 저렇게 

저런식으로요 
캐쉬를 제거하고 나머지구문을 한번 더 써주면 제대로되긴하는데 

이거 혹시 해결방법이 있나 여쭙고 싶습니다. 
 다음글 안녕하세요?? CI초보가 URL에 대해서 질문합니다, (1)
 이전글 html 을 pdf 로 만드려는데 가능한 플러그인이 있... (2)

댓글

헤덥 / 2014/12/08 18:46:07 / 추천 0
아....편법으로 해결했습니다 ㅠㅠ 
저 조건절 걸린 곳만 캐쉬를 한번 더 넣어주는방식으로 했습니다. 
근데 캐쉬가 안걸린 셀렉트문은 무조건 백틱이 걸려서 나와버리네요. 
나중에 코어단을 한번 살펴봐야할것 같네요