질문 Q #18835
$this->db->escape 에 대해서 질문있습니다.
나그넹 2017-10-08 07:18:50

$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개 생겨버렸네요.

이유가 뭔가요?

답변 2
#1 닥 2017-10-08 18:55:38

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

위에 쿼리는 간단하게

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

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

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

 

#2 변종원(웅파) 2017-10-09 09:27:45
게시판 이동합니다.