2011-05-07 7 views
0

내가 그것을 작은 따옴표를 추가 $this->db->escape();데이터가 [CodeIgniter의]

$this->db->set('last_name',$this->db->escape($lastname1)); 

를 사용하여 DB에 값을 저장하고 탈출 표시하지만 난 거기에 views..is의 모든 내장 한을 표시하지 않으 이 일을하는 방법?

답변

1

작은 따옴표가 표시되면 아마도 두 번 이스케이프 처리 중일 수 있습니다. 작은 따옴표를 두 번 사용하지 않고 escape을 사용했습니다. http://www.codeignitor.com/user_guide/database/active_record.html을 보면 기본적으로 set이 자동으로 이스케이프 처리됩니다.

set() will also accept an optional third parameter ($escape), that will prevent data from being escaped if set to FALSE. To illustrate the difference, here is set() used both with and without the escape parameter. 

따라서 escape으로 전화 할 필요가 없으므로 괜찮습니다.

+0

나는 값을 확인했습니다. phpmyadmin에서 set()이 작은 따옴표를 추가하지 않는 것처럼 보입니다. 하지만 escape()를 사용하면 작은 따옴표가 추가됩니다. – Vamsi

+0

그래서 이음새는 escape() 함수를 사용하면 무의미합니다. set() 함수가 이미 작은 따옴표를 추가하기 때문입니다. –

+0

'escape'는 작은 따옴표가 필요한 경우 추가합니다. 그렇지 않으면 작은 따옴표를 추가하지 않습니다. – Femi

0

PHP의 MySQLI 클래스에 'escape()'기능이 없기 때문에 어떤 클래스를 사용하고 있는지 알 수 없습니다.

그러나 데이터베이스에 삽입 쿼리를 이스케이프하는 일반적인 방법은 Prepared Statement입니다.

문서에서 볼 수 있듯이이 프레임 워크에는 실제 Prepared Statement가 없습니다.

$ this-> DB-> 탈출()를 은 문자열 데이터를 탈출 할 수 있도록이 기능 데이터 유형을 결정하지만, 나는이를 발견했다. 당신이하지 않아도 또한 가 자동으로 데이터 주위에 따옴표 을 추가

당신은 Documentation을 확인해야합니다.

+0

안녕하세요, 저는 codeigniter PHP 프레임 워크를 사용하고 있습니다. – Vamsi

+0

나는 원래의 대답에 약간의 편집을했다. 이것이 당신의 문제를 해결하는지보십시오. –

+0

그래 ..하지만 저장된 데이터를 사용하고 싶습니다 .. 그리고 그것을 사용할 때 .. 작은 따옴표로 될 것입니다 .. 그래서 작은 따옴표를 제거하는 쉬운 방법을 원해 .. 감사합니다 – Vamsi