sql >> Base de Datos >  >> RDS >> Mysql

Se produjo un error en la base de datos Número de error:1062

Tu UPDATE la cláusula está configurando el id_publisher columna a NULL y, según el nombre de la columna y el error que recibe, eso la columna es la PRIMARY KEY de la tabla con una configuración de unsigned NOT NULL .

Debido a esto, cuando haces id_publisher = NULL , MySQL lo convierte a id_publisher = 0 debido al unsigned parte. Esto se ejecutará bien la primera vez, sin embargo, cuando lo ejecute en una segunda fila, ahora intentará insertar un segundo valor de clave principal de 0 , que no está permitido.

Basado en la ubicación del die() declaración en su código de muestra, asumo que el siguiente bloque es el culpable:

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

Aquí, su $id_publis la variable está vacía o es nula.

Sugeriría eliminar el id_publisher = NULL parte de la UPDATE cláusula que es tan simple como eliminar 'id_publisher' => $id_publis, de $data1 matriz, o reconsidere la razón por la que realmente necesita establecerlo en null para empezar (en este caso, ¿sería más beneficioso eliminar la fila?)