CI 묻고 답하기

제목 AR ) get_where null 체크 안되는 문제.
글쓴이 인생초보 작성시각 2015/08/17 16:26:45
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 15841   RSS
안녕하세요. 
CI로 작업중인 사람입니다.

지금 구글링해가면서 찾고있기는 한데요.

이게 버전문제인지 null 체크할때 문제가 발생합니다.

AR 부분입니다.
$this->CI->db->select('access_token')->get_where('oauth_sessions', array('id' => $session_id, 'access_token !=' => NULL));

오류입니다.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
SELECT `access_token` FROM (`oauth_sessions`) WHERE `id` = '2' AND `access_token` !=



access_token != NULL 에서 NULL 을 'NULL' 하면 또 문자열로 인식을 합니다.

혹시 이부분 관련해서 아시는 분 계시면 말씀좀 부탁드리겠습니다.

 
 다음글 컨트롤러로 인자 전달? (3)
 이전글 PHP 코드에 javascript 접목 방법 문의 (4)

댓글

변종원(웅파) / 2015/08/17 18:02:20 / 추천 0
null을 ''로 대체해보세요.

아니면 ar이 아닌 쿼리로 access_token is not null 이라고 쓰셔야합니다.
인생초보 / 2015/08/17 18:09:27 / 추천 0
감사합니다. 일단 다른방식으로 바꿔서 돌려놓긴했는데.
구문자체가 잘못된건지. 아님 다른방법이 있는데 제가 몰라서 그런건지 궁금해서요 ㅎㅎ
수고하세요~
한대승(불의회상) / 2015/08/18 10:35:43 / 추천 0
get_where() 만으로는 해결이 힘듭니다.
아래 처럼 where() 와 함께 사용하시면 해결 가능 합니다.
sql 구문 살펴 보시면 아시겠지만 NULL 체크시는 is null 과 is not null 을 사용하셔야 합니다.
$this->CI->db->select('access_token')->where('access_token is not null', NULL, FALSE)->get_where('oauth_sessions', array('id' => $session_id));