2012-10-29 3 views
1

방금 ​​최근에 활성 레코드를 사용하기 시작했습니다.codeigniter 활성 레코드, 이스케이프 할 때, 모두

내가 ion_auth의 코드를 찾고 있었고, 난이 활성화 레코드가 사용해도 몇 군데에서 문자열이 탈출했던 것을보고,

->where($this->identity_column, $this->db->escape_str($identity)) 
->where($this->tables['groups'].'.name', $this->db->escape_str($group)) 

것은 내가 탈출 havent 한이다 어디서나 내가 활성 레코드를 사용한 곳은 문서에서 활성 레코드가 자동으로 문자열을 이스케이프 처리한다고합니다.

내 질문에 활성 레코드를 사용할 때 문자열을 이스케이프해야 할 때가 있습니까?

답변

5

를 CodeIgniter의 사용 설명서에서 :. 단순 저쪽에

, 활성 기록을 기능 를 사용하는 주요 이점은 쿼리 구문은 각 데이터베이스 어댑터에 의해 생성되기 때문에 당신이 , 데이터베이스 독립적 인 응용 프로그램을 만들 수 있다는 것입니다. 또한 안전 쿼리 수 , 값이 자동으로 탈출하고 있기 때문에 시에 의해 줄기.

는 ion_auth의 작성자는 문자열을 탈출을위한 특별한 이유가 있었다 모르지만, 당신은 액티브 레코드를 사용하는 경우, CodeIgniter는 쿼리 자동으로 이스케이프합니다.

그러나 액티브 레코드처럼 "보길"하는 쿼리가 있으며 이스케이프해야합니다. Here's a list of them, 다시 Codeigniter User Guide에서 확인하십시오.

0

일반적으로 codeigniter가 처리하도록 할 수 있습니다. 활성 기록을 이용하여 더 복잡한 쿼리를 구축하는 경우 일부의 경우 (예 : $this->db->where('(some sql where clause)') 당신은 DB 라이브러리의 탈출 방법을 사용할 수 있습니다

0

아니요, 이스케이프를 사용할 필요가 없습니다. 작은 따옴표와 큰 따옴표를 섞어서 다른 형식의 텍스트를 시도해 봤습니다. HTML 태그 전체가 완벽하게 작동합니다.

관련 문제