질문 Q #11354
CI_DB_postgre_driver 에서 escape_str() 오류
한정우 2014-05-15 13:50:17
모델에서 
$this->db->like("field", '_data'); 로 검색할 때

ESCAPE 문자열이 _ 가 포함된 경우

field like '%!_data% escape '!' 이렇게 되어야 정상인데

field like '%!!_data% escape '!' 처럼 !!가 들어가 버립니다..

CI_DB_postgre_driver 에서 escape_str()  부분을 보면..

            $str = str_replace(    array('%', '_', $this->_like_escape_chr),
                                array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr),
                                $str);

이렇게 되어 있는데 아래처럼 수정해야 할거 같은데요 ?

            $str = str_replace(    array('%', '_'),
                                array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_'),
                                $str);

정확하지가 않아서.. 문의 드립니다.
답변 1
#1 한대승(불의회상) 2014-05-15 15:20:58
DB 코어를 수정하여 사용하는 것 보다 $this->db->where() 문에 직접 기술하여 사용하시는게 좋을것 같습니다.