제목 | 액티브 레코드에 MySQL 함수를 쓰려면 어떻게 해야될까요? | ||
---|---|---|---|
글쓴이 | 정민스 | 작성시각 | 2010/06/10 13:16:06 |
|
|||
$frm_data = array( 'uid' => $_POST['id'], 'atype' => $_POST['jtype'], 'acode' => $acode, 'aname' => $aname, 'status' => 2, 'auth' => $_POST['auth'], 'uname' => $_POST['name'],위와 같이 배열을 정의하여 $this->db->insert("tbl_member", $frm_data); 데이터를 Insert 합니다. 근데. Password 항목이 있어서, MySQL Password 를 적용하고 싶습니다. 'passwd' => "PASSWORD('" . $_POST['passwd1'] . "')", 이렇게 집어 넣었더니.. PASSWORD('password") 와 같이 그냥 문자열로 인식하더군요... 저걸 또 다 쿼리로 바꾸려면 -_-;;; ㅎㄷㄷ 방법이 없을까요~? |
|||
다음글 | 궁금한게 있습니다. 위젯 관련. (3) | ||
이전글 | 싸이트 접속시 디폴트 페이지 (2) | ||
mycastor
/
2010/06/10 13:32:03 /
추천
0
|
앤드그리고
/
2010/06/10 13:55:03 /
추천
0
$this->db->set('field', $value, false); $this->db->set($array); $this->db->insert('table');를 이용해 보세요... 참고 : http://codeigniter-kr.org/user_guide/database/active_record.html#insert |
변종원(웅파)
/
2010/06/10 13:55:49 /
추천
0
아래에 비슷한 질문이 있습니다. http://codeigniter-kr.org/qna/view/2991/page/1
조영운님 답변대로 set에서 escape처리하지 않고 보내면 됩니다. 매뉴얼(http://codeigniter-kr.org/user_guide/database/active_record.html#insert)에서 $this->db->set(); 부분 참고하세요. |
mycastor
/
2010/06/10 14:03:22 /
추천
0
음.. 안하고 하는 방법이 있었네요~~~~~
하나 배워갑니다.. 즐거운 코딩되세요~~~~~~ |
엑티브 레코드를 쓰지 않아서 메뉴얼을 한번 찾아봤는데
INSERT문의 경우는 값에 대해 자동으로 이스케이프 처리를 한다고 나와있네요.
엑티브 레코드로 생성된 쿼리에서 이스케이프한 부분에 대하여 치환하는 수밖에 없을거 같네요.
이러면 더 복잡해질수가 있기 때문에 차라리 바인딩을 사용하시는게 어떨까요?
쿼리 바인딩도 자동으로 이스케이프 처리 하기 때문에 보안에 좋습니다.
저는 조인하고 서브쿼리를 하는 경우가 많아서.. 엑티브레코드를 쓰려니 너무 복잡하더라구요..