CI 묻고 답하기

제목 $this->db->insert 사용시
글쓴이 차가운바람 작성시각 2013/02/18 22:37:09
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 13953   RSS
$data['a'] = $this->input->post('a');
$data['b'] = $this->input->post('b');

$this->db->insert('table',$data);
이렇게 데이터를 넣는데요

a,b값이 없을때 db에
a | b
0   0

이렇게 0값이 들어가는데요
            varchar(255) utf8_general_ci   아니오                  
            varchar(255) utf8_general_ci   아니오

phpmyadmin에서 이렇게 세팅 되어있는데요
0값이 안들어가게 할수있나요??
 다음글 ci database 쿼리를 사용할 때 (7)
 이전글 xml rpc 디버깅 어떻게 하나요? (1)

댓글

수야디벨 / 2013/02/19 11:21:22 / 추천 0
0값이 들어가길 원하지 않으면 넣고 싶은 값으로 넣어주면 되지 않나요?

더 좋은 방법이 많겠지만 만약에 저라면 ,

1. 값이 없을때의 $data['a'] = $this->input->post('a'); 를 찍어본다.

2. 0이 출력 된다면 if($data['a'] == 0) 으로 조건을 주어서 insert를 실행시키지 않는다.

3. 만약 아무것도 출력이 되지 않는다면 empty()로 검사해서 insert를 시키지 않는다.




kokanee / 2013/02/19 12:15:56 / 추천 0
가장 좋은 디버깅은 출력을 해보느 것이죠.. 각 단계별로 var_dump를 찍어보세요.

1. var_dump($_POST);
2. var_dump($data);

int 필드에 null이나 공백이 입력되면 0 으로 입력되는데요..
varchar 타입 필드에 0이 입력되는 걸 봐서는 넘어오는 값이 0 일듯 합니다.
혹시나 해서 $Input->post() 봤는데요.. 단순히 Post 값을 뽑아주는 역할만 합니다.

정말 이도 저도 아님 캐스팅을 한번해보세요..(이 것 안해도 될듯)
$data[a] = (String) $this->input->post('a');