제목 | 코드이그나이터.. 데이터 날려먹었습니다.... | ||
---|---|---|---|
글쓴이 | 정석모 | 작성시각 | 2015/05/01 11:00:00 |
|
|||
안녕하세요 선배님들. 코드이그나이터에 입문한지 얼마 안되는 초보자 인사 드립니다. 어제 큰 사고 하나 쳤습니다. 테이블의 데이터를 싹 날려 먹었습니다 ㅜㅜ 원인이 무엇인가 하면.... $this->db->where('user_id', $this->input->post('user_id', TRUE)); $this->db->delete('user'); POST 값에 user_id가 없을 경우, $this->input->post('user_id', TRUE)는 FALSE를 반환 합니다. 만들어진 쿼리는..... delete user where user_id=0 FALSE가 쿼리에 바인딩 되면 숫자 0으로 바뀝니다. 결과는.... 전체삭제..... ㅜㅜ 흐앙 ㅜㅜ mysql에서 varchar를 평가할 때 숫자 0으로 비교하면 조건문 자체가 무시되는거 같아요. 그래서 post 코어에서 FALSE 반환을 ''(공백) 반환으로 변경하였습니다. 이런 경우에는 어떻게 해결을 봐야 하나요? 코드이그나이터 정말 훌륭한데 제가 사용을 잘 못하는 걸 수도 있겠네요. 조언 부탁 드립니다. |
|||
다음글 | codeigniter 사용자포름 소스설치관련 (1) | ||
이전글 | CI 경로관련 질문 드리겠습니다 (4) | ||
헤덥
/
2015/05/01 15:01:34 /
추천
0
|
변종원(웅파)
/
2015/05/01 15:43:06 /
추천
0
데이터를 컨트롤러에서 체크하지 않고 그냥 모델로 넘기니 예기치않은 결과가 나온겁니다.
데이터는 항상 체크를 해야합니다. 헤덥님이 올리신 것처럼 체크를 해서 처리를 해야합니다. |
정석모
/
2015/05/01 21:02:12 /
추천
0
결국 제 자신의 어처구니 없이 잘못된 코딩이었습니다.
뼈저리게 반성 합니다. 이제 안그럴께요. ㅜㅜ |
if($user_id) {
$this->db->where('user_id', $user_id);
$this->db->delete('user');
}
걍 간단하게......이런식으로?