UPDATE
của bạn mệnh đề đang đặt id_publisher
cột thành NULL
và, dựa trên tên của cột và lỗi bạn đang nhận được, that là PRIMARY KEY
của bảng với cài đặt unsigned NOT NULL
.
Do đó, khi bạn làm id_publisher = NULL
, MySQL chuyển đổi nó thành id_publisher = 0
do unsigned
phần. Điều này sẽ thực thi tốt trong lần đầu tiên, tuy nhiên, khi bạn chạy nó trên hàng thứ hai, bây giờ bạn sẽ cố gắng chèn một giây giá trị khóa chính của 0
, điều này không được phép.
Dựa trên vị trí của die()
trong mã mẫu của bạn, tôi giả sử khối sau là thủ phạm:
$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);
Đây, $id_publis
của bạn biến trống hoặc rỗng.
Tôi khuyên bạn nên xóa id_publisher = NULL
phần từ UPDATE
mệnh đề đơn giản như xóa 'id_publisher' => $id_publis,
từ $data1
hoặc suy nghĩ lại lý do bạn thực sự cần đặt nó thành null
để bắt đầu (trong trường hợp này, xóa hàng có lợi hơn không?)