CI 묻고 답하기

제목 $this->db->escape 에 대해서 질문있습니다.
카테고리 CI 2, 3
글쓴이 나그넹 작성시각 2017/10/08 06:48:50
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 14587   RSS

$this->db->escape에 대해서 질문있습니다.

 

제가 아래 sql쿼리를 사용할껀데요

$member_id = $this->input->post('member_id ', TRUE);

$sql = "SELECT member_pw FROM member_table WHERE member_id='" . $member_id . "'";

 

SQL Injection 방지를 위해서

$member_id = $this->db->escape($member_id );를 두 문장 사이에 사용하였습니다.

그랬더니 결과 쿼리가 이렇게 되어버렸어요...

SELECT member_pw FROM member_tableWHERE member_id=' 'root' '

즉 홀따옴표가 2개 생겨버렸네요.

이유가 뭔가요?

 다음글 CI interface not found 문제 질문 드... (6)
 이전글 ci 로 구동시에 로그 자동으로 남기고 오래된것은 자동... (2)

댓글

/ 2017/10/08 18:25:38 / 추천 0

코드이그나이터를 쓰시면 엑티브레코드를 쓰시기를 권장 합니다.

위에 쿼리는 간단하게

$this->db->where('member_id',$member_id)->get('member_table')->result_array(); 로 간단하게 결과를 조회 할 수 있습니다.

또한 원하시는 이스케이프 처리까지 완벽하게 해주므로, 구지? 날쿼리를 쓰는것 보단 이게 더 편할것으로 판단 됩니다.

문의 하신 내용은 위 권장사양으로 충분히 해결 가능하여, 작성하지 않았습니다.

 

변종원(웅파) / 2017/10/09 08:57:45 / 추천 0
게시판 이동합니다.