UPDATE 句はid_publisherを設定しています 列からNULL 、および、列の名前と受け取ったエラーに基づいて、それ 列はテーブルのPRIMARY KEY unsigned NOT NULLの設定で 。
このため、id_publisher = NULLを実行すると 、MySQLはそれをid_publisher = 0に変換します unsignedが原因 部。これは最初は正常に実行されますが、2番目の行で実行すると、秒を挿入しようとします。 0の主キー値 、許可されていません。
die()の場所に基づく サンプルコードのステートメントでは、次のブロックが原因であると想定しています。
$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);
ここで、$id_publis 変数は空またはnullです。
id_publisher = NULLを削除することをお勧めします UPDATEの一部 'id_publisher' => $id_publis,を削除するのと同じくらい簡単な句 $data1から 配列、または実際にnullに設定する必要がある理由を再考してください そもそも(この場合、行を削除する方が有益でしょうか?)