CI 묻고 답하기

제목 액티브 레코드 select 시에 원치 않는 이스케이프
글쓴이 텅스텐필름 작성시각 2010/06/14 18:08:55
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 26666   RSS
select if(aa is null, 'y','n') as a from test

라는 쿼리를 만드는데 이스케이프 처리 되어서 if(aa is null, `'y'`,`'n')` 이렇게 되어버리는데요.

물론 select 후에 판별하면 문제 될일은 없겠지만 피치 못할사정으로 해당 쿼리를 사용해야하는 경우

어떻게 처리를 해줘야 select  부분에 이스케이프를 false 할수 있을까요?
$this->db->select("if(aa is not null , 'y' , 'n') as aa");
$this->db->from("test");
태그 액티브레코드,select,이스케이프,함수
 다음글 xmlrpc 사용 문의 (2)
 이전글 초보의 form_error 질문;;;; (2)

댓글

mycastor / 2010/06/14 19:42:51 / 추천 0
http://www.codeigniter-kr.org/qna/view/3018/page/1

여기에 동일한 문제에 대해서 답변이 있네요.
앤드그리고 / 2010/06/15 11:11:06 / 추천 0
http://codeigniter-kr.org/user_guide/database/active_record.html#select

에서 select 부분에 보면 아래쪽에

$this->db->select() 함수에서는 옵션으로 두번째 파라미터를 설정할 수 있습니다. 만약 FALSE 로 설정하면 CodeIgniter 는 필드나 테이블명을 백틱(`) 으로 감싸 보호하지 않습니다.복잡한 select 문을 사용할때 이것이 유용합니다.

$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE);
$query = $this->db->get('mytable');

이런 설명이 나옵니다....

select() 두 번째 파라미터가 escape 여부네요...
 
텅스텐필름 / 2010/06/15 11:19:19 / 추천 0

아!! 그렇군요 왜 미처 그부분을 보려고 못했을까요 ㅠㅠ

감사합니다!!