Mysql
 sql >> Database >  >> RDS >> Mysql

Si è verificato un errore del database Numero di errore:1062

Il tuo UPDATE la clausola sta impostando il id_publisher colonna su NULL e, in base al nome della colonna e all'errore che stai ricevendo, quello colonna è la PRIMARY KEY della tabella con un'impostazione di unsigned NOT NULL .

Per questo motivo, quando esegui id_publisher = NULL , MySQL lo converte in id_publisher = 0 a causa del unsigned parte. Questo verrà eseguito correttamente la prima volta, tuttavia, quando lo esegui su una seconda riga, ora tenterai di inserire un secondo valore della chiave primaria di 0 , che non è consentito.

Basato sulla posizione del die() dichiarazione nel tuo codice di esempio, presumo che il seguente blocco sia il colpevole:

   $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);

Qui, il tuo $id_publis la variabile è vuota o nulla.

Suggerirei di rimuovere id_publisher = NULL parte dal UPDATE clausola che è semplice come rimuovere 'id_publisher' => $id_publis, dal $data1 array o ripensa al motivo per cui hai effettivamente bisogno di impostarlo su null per cominciare (in questo caso, eliminare la riga sarebbe più vantaggioso?)