CI 묻고 답하기

제목 db 쿼리 중첩 where 절을 인식을못합니다.
글쓴이 해행행 작성시각 2016/07/08 17:33:52
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 15811   RSS

//db쿼리
select * from test_diagnosis where categorys="소음" and step=1;

//ci 코드
	function get_step1($categorys){
		$this->db->from('test_diagnosis');
		$this->db->where('categorys', $categorys);
		$this->db->where('step', 1);
	
		$query = $this->db->get();
	
		return $query->result();
	}

 

들어가는 값, 가져오는값 다확인해보고 찎어봤는데

 

$this->db->where('categorys', $categorys);

이부분 자체를 인식을 못합니다.

데이터를 아무리찍어봐도 저기를 인식을 못하는거말고는 문제되는걸 찾질못하고있씁니다.

여태까지 중첩where 써서 and로 조건걸었었는데 안되서당황스럽네요.

혹시 중첩으로쓴게잘못됬을까봐 밑에있는

$this->db->where('step', 1);

를 주석처리하고도 해봤는데도

$this->db->where('categorys', $categorys); 이거만 인식을못하네요.

너무 답답하고 급한마음에 두서없이써서죄송합니다

 다음글 www. 를 붙이면 접속이 안되요. (1)
 이전글 계속 질문을 올리게 되어 죄송합니다 ㅜㅜ (6)

댓글

kaido / 2016/07/08 17:38:49 / 추천 0
$categorys  <-- 여기에 무엇이 들어있나요?

숫자? 1 2 3
문자? apple melon 
혹은 배열 ?

일단  

var_dump($categorys);

이걸로 뭐가 들어있는지 부터 확인 해보세요.

 

그리고 실제 실행 쿼리 확인을 위한 가장 빠른 방법은
$this->output->enable_profiler(true);
입니다.
 
현재 문법상으로는 정상입니다.
해행행 / 2016/07/08 17:42:58 / 추천 0
@kaido 문자열이들어갑니다. 제가정삭적으로 보낸 한글값이 들어갑니다.
kaido / 2016/07/08 17:44:38 / 추천 0

@해행행

그러면 $this->output->enable_profiler(true); 으로 실제 실행된 쿼리 내용을 확인해 보세요.

변종원(웅파) / 2016/07/08 17:45:24 / 추천 0
echo $this->db->last_query(); 출력해서 변환된 쿼리문 보시고 그 쿼리를 mysql콘솔에서 직접 실행해보세요.
해행행 / 2016/07/08 17:46:57 / 추천 0

//kaido

$this->output->enable_profiler(true); 를 한번도써본적이없어 액티브레코드 참고하여 사용해보겠습니다. 감사합니다. 현재 category만 아에 코드로 인식자체를 못하는거같습니다. 어떤테스트를 해봐도 다른 where절을 줘도 잘인식을하고있는상태입니다. 혹시 제가놓치고있는부분이있을까요

해행행 / 2016/07/08 17:47:30 / 추천 0

//변종원

네 실행해보겠습니다.

해행행 / 2016/07/08 17:52:52 / 추천 0

값을 0으로 가지고가네요... 콘트롤러에서 찍은값은 분명 문자를 가지고갔었는데. 아 감사합니다.

두분덕분에 문제찾는방법을 더알게되었습니다.

 

해행행 / 2016/07/08 18:05:54 / 추천 0

//변종원, kaido

제 사소한 불찰로인해서 게시판 어지럽힌거같아 정말죄송합니다.

죄송하고 정말감사합니다