2011-11-20 6 views
3

나는 다음과 같은 코드를 사용하여 내 데이터베이스에 데이터를 삽입하고 :코드 점화 캐치 오류

$this->db->set('event_id', $event_id); 
... 
$this->db->set('creator_id', $creator_id); 

$this->db->insert('event'); 

이 어떻게 프로세스가 성공적으로 완료되었는지 확인하고 사용자에게 확인 메시지를 표시 할 수 있습니다를, 그렇지 않으면 오류 메시지가 표시됩니까? 코멘트 후

//.... 
$this->db->insert('event'); 
if($this->db->affected_rows() > 0) 
{ 
    echo 'row succesfully inserted'; 
} 

UPDATE :

+1

위해서 var_dump'의 출력은 무엇인가 ($ this-> DB-> 삽입 ('이벤트'));'? – Shoe

답변

5

음이, IIRC이 방법이 성공적인 경우에 true를 돌려줍니다, 그래서 당신은 그렇지 않으면 간단한

if($this->db->insert('event')) 
{ 
    echo 'Row succesfully inserted!'; 
} 

로 갈 수있다, 당신은 항상 affected rows를 셀 수 있습니다

3 개의 insert_batch()가 서로 다른 세 개의 테이블에 있다고 생각합니다. 따라서 확인이 필요합니다. 각각. 어쨌든, 나에게 수수께끼의 이유는이 체크를 수행하는 이유입니다. 쿼리는 무작위로 실패하지 않습니다 : 가능하면 그들은 이 아니며이 실패해야하며, 오류가 발생하면 (기록되거나 표시되는) 오류를 알게됩니다.

+0

그 다음에 insert_batch ($ array)가 두 개 있습니다. 다른 삽입 작업을 수행하기 전에 각 삽입을 테스트해야합니까? 아니면 그냥 모든 3, 즉 '($ this-> db-> insert ('이벤트') && $ this-> db-> insert_batch ($ arr1) && $ this-> db-> insert_batch $ arr2)) {...}' – lodhb

+0

@ lodhb 답변을 업데이트했습니다 –

+0

감사합니다! – lodhb

0

"마지막 오류가 발생하면 error() 메서드는 코드와 메시지가 포함 된 배열을 반환합니다." https://www.codeigniter.com/userguide3/database/queries.html

$insert = $this->db->insert('event'); 

      if(!$insert){ 

       $error = $this->db->error(); // Has keys 'code' and 'message' 
       echo "<BR><BR>"; 
       print_r($error); 
       echo "<BR><BR>"; 
      } 

      echo "Error contact the database admin."; 
      die(); 

     }else{ 

      echo "SUCCESSFULLY INSERTED ITEM"; 
      return TRUE; 
     }