Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Ocorreu um erro de banco de dados Número do erro:1062


Sua UPDATE cláusula está definindo o id_publisher coluna para NULL e, com base no nome da coluna e no erro que você está recebendo, que coluna é a PRIMARY KEY da tabela com uma configuração de unsigned NOT NULL .

Por causa disso, quando você faz id_publisher = NULL , o MySQL converte para id_publisher = 0 devido ao unsigned papel. Isso funcionará bem na primeira vez, no entanto, quando você executá-lo em uma segunda linha, agora você estará tentando inserir um segundo valor de chave primária de 0 , o que não é permitido.

Com base na localização do die() declaração em seu código de exemplo, estou assumindo que o seguinte bloco é o culpado:
   $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);

Aqui, seu $id_publis variável está vazia ou nula.

Sugiro remover o id_publisher = NULL parte do UPDATE cláusula que é tão simples quanto remover 'id_publisher' => $id_publis, do $data1 array ou repense o motivo pelo qual você realmente precisa defini-lo como null para começar (neste caso, excluir a linha seria mais benéfico?)