Mysql
 sql >> Base de données >  >> RDS >> Mysql

Une erreur de base de données s'est produite Numéro d'erreur :1062

Votre UPDATE la clause définit le id_publisher colonne à NULL , et, en fonction du nom de la colonne et de l'erreur que vous recevez, cela la colonne est la PRIMARY KEY de la table avec un paramètre de unsigned NOT NULL .

Pour cette raison, lorsque vous faites id_publisher = NULL , MySQL le convertit en id_publisher = 0 en raison du unsigned partie. Cela s'exécutera bien la première fois, cependant, lorsque vous l'exécuterez sur une deuxième ligne, vous tenterez maintenant d'insérer une seconde valeur de clé primaire de 0 , ce qui n'est pas autorisé.

Basé sur l'emplacement du die() déclaration dans votre exemple de code, je suppose que le bloc suivant est le coupable :

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

Ici, votre $id_publis variable est vide ou nulle.

Je suggérerais soit de supprimer le id_publisher = NULL partie de la UPDATE clause qui est aussi simple que de supprimer 'id_publisher' => $id_publis, à partir du $data1 array, ou repensez la raison pour laquelle vous devez réellement le définir sur null pour commencer (dans ce cas, supprimer la ligne serait-il plus avantageux ?)