UPDATE . Anda klausa sedang mengatur id_publisher kolom ke NULL , dan, berdasarkan nama kolom dan kesalahan yang Anda terima, bahwa kolom adalah PRIMARY KEY tabel dengan pengaturan unsigned NOT NULL .
Karena itu, ketika Anda melakukan id_publisher = NULL , MySQL mengonversinya menjadi id_publisher = 0 karena unsigned bagian. Ini akan berjalan dengan baik pertama kali, namun, ketika Anda menjalankannya di baris kedua, Anda sekarang akan mencoba memasukkan kedua nilai kunci utama 0 , yang tidak diperbolehkan.
Berdasarkan lokasi die() pernyataan dalam kode sampel Anda, saya berasumsi blok berikut adalah pelakunya:
$data1 = array(
'id_publisher' => $id_publis,
'publisher' => $publis,
'artis' => $ar,
'id_label' => $id_lab);
$this->db->where('id_publisher', $this->input->post('id'), $data);
$this->db->update("t_publisher",$data1);
Di sini, $id_publis your Anda variabel kosong atau nol.
Saya akan menyarankan untuk menghapus id_publisher = NULL bagian dari UPDATE klausa yang sesederhana menghapus 'id_publisher' => $id_publis, dari $data1 array, atau pikirkan kembali alasan Anda sebenarnya perlu menyetelnya ke null untuk memulainya (dalam hal ini, apakah menghapus baris akan lebih bermanfaat?)