| 제목 | 액티브 레코드에 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문의 경우는 값에 대해 자동으로 이스케이프 처리를 한다고 나와있네요.
엑티브 레코드로 생성된 쿼리에서 이스케이프한 부분에 대하여 치환하는 수밖에 없을거 같네요.
이러면 더 복잡해질수가 있기 때문에 차라리 바인딩을 사용하시는게 어떨까요?
쿼리 바인딩도 자동으로 이스케이프 처리 하기 때문에 보안에 좋습니다.
저는 조인하고 서브쿼리를 하는 경우가 많아서.. 엑티브레코드를 쓰려니 너무 복잡하더라구요..