내가 그것을 작은 따옴표를 추가 $this->db->escape();
데이터가 [CodeIgniter의]
$this->db->set('last_name',$this->db->escape($lastname1));
를 사용하여 DB에 값을 저장하고 탈출 표시하지만 난 거기에 views..is의 모든 내장 한을 표시하지 않으 이 일을하는 방법?
내가 그것을 작은 따옴표를 추가 $this->db->escape();
데이터가 [CodeIgniter의]
$this->db->set('last_name',$this->db->escape($lastname1));
를 사용하여 DB에 값을 저장하고 탈출 표시하지만 난 거기에 views..is의 모든 내장 한을 표시하지 않으 이 일을하는 방법?
작은 따옴표가 표시되면 아마도 두 번 이스케이프 처리 중일 수 있습니다. 작은 따옴표를 두 번 사용하지 않고 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
으로 전화 할 필요가 없으므로 괜찮습니다.
PHP의 MySQLI 클래스에 'escape()'기능이 없기 때문에 어떤 클래스를 사용하고 있는지 알 수 없습니다.
그러나 데이터베이스에 삽입 쿼리를 이스케이프하는 일반적인 방법은 Prepared Statement입니다.
문서에서 볼 수 있듯이이 프레임 워크에는 실제 Prepared Statement가 없습니다.
$ this-> DB-> 탈출()를 은 문자열 데이터를 탈출 할 수 있도록이 기능 데이터 유형을 결정하지만, 나는이를 발견했다. 당신이하지 않아도 또한 가 자동으로 데이터 주위에 따옴표 을 추가
당신은 Documentation을 확인해야합니다.
나는 값을 확인했습니다. phpmyadmin에서 set()이 작은 따옴표를 추가하지 않는 것처럼 보입니다. 하지만 escape()를 사용하면 작은 따옴표가 추가됩니다. – Vamsi
그래서 이음새는 escape() 함수를 사용하면 무의미합니다. set() 함수가 이미 작은 따옴표를 추가하기 때문입니다. –
'escape'는 작은 따옴표가 필요한 경우 추가합니다. 그렇지 않으면 작은 따옴표를 추가하지 않습니다. – Femi