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