Cara mengatasi CodeIgniter Error Number: 1062 Duplicate entry

Mohon pencerahan-nya, bagaimana mengatasi masalah ketika input data yang sama. saya sudah coba menggunakan cara ini : if ($this->db->insert('crud_test',$data)) { return [ 'id' =>$this->db->insert_id(), 'success' => true, 'message' => 'data berhasil di input' ]; }else { return [ 'success' => false, 'message' => 'data gagal di input' ]; } dan saya juga coba cara ini : try { $this->db->insert('crud_test',$data); return [ 'id' =>$this->db->insert_id(), 'success' => true, 'message' => 'data berhasil di input' ]; } catch (Exception $e) { return [ 'success' => false, 'message' => 'data gagal di input' ];

}

Yang saya harapkan ketika terjadi kesalahan input akan me-return : return [ 'success' => false, 'message' => 'data gagal di input' ];

tetapi error yang muncul tetap : A Database Error Occurred

Error Number: 1062

Duplicate entry '17' for key 'PRIMARY'

INSERT INTO `crud_test` (`id`, `deskripsi`) VALUES ('17', 'david')

Filename: C:/xampp/htdocs/CodeIgniter/system/database/DB_driver.php

Line Number: 691

avatar DavidHidayat
@DavidHidayat

2 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

2 Jawaban:

solved yeeeaahhhh : function add() { $data =($this->input->post()); extract($data); if ($this->check_id($id)) { return [ 'success' => false, 'message' => 'data gagal di input' ]; }else { $this->db->insert('crud_test',$data); return [ 'id' =>$this->db->insert_id(), 'success' => true, 'message' => 'data berhasil di input' ]; } } function check_id($id){

$this->db->select();            
$query = $this->db->get_where('crud_test', array('id' => $id));
$result = $query->result_array();

$count = count($result); 

if(empty($count)){
    return false;
}
else{
    return true;
}

} salah masuk akun hahahaha

avatar agungpambudi22
@agungpambudi22

3 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Sudah jelas itu duplikat primary key, mungkin agan pakai Auto Increment tapi valuenya diset pada $data

avatar AriSudarma
@AriSudarma

5 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban