Insertar datos donde exista el id ya definido! en codeigniter

espero que hayan tenido una bonita navidad.

resulta que tengo una tabla que se llama votaciones con los siguientes campos:

id, opcion, nombre, correo, rut , cond1, cond2, fecha

es un sistema de votación entonces al votar se guarda en al db el ID y la opcion más adelante si quiere el individuo se registra y para eso necesito un INSERT nombre,corre.. WHERE ID = ID

intente con este código:modelo

function InsertRegistro($id,$data){
   $this->db->insert('votaciones',$data);
   $this->db->where("id",$id);
}

desde mi controller:

public function registro() {

    $id = $this - > input - > post('id');

    $data = array(

        'nombre' => $this - > input - > post('nombre'),
        'correo' => $this - > input - > post('correo'),
        'rut' => $this - > input - > post('rut'),
        'cond1' => $this - > input - > post('cond1'),
        'cond2' => $this - > input - > post('cond2'),

    );

    $this - > load - > model('Prontomodel');
    $this - > Prontomodel - > InsertRegistro($id, $data);

}

me inserta datos pero me borra el id y luego no me deja insertar, algo estoy haciendo mal, la cosa es que estoy aprendiendo codeigniter y agradeceria que me enseñaran a como hacerlo, gracias.

1
задан 26.12.2016, 16:01
0 ответов

Поскольку я могу понимать, действительно то, что ты хочешь сделать, является обновлением реестра базы данных, не вставлением нового реестра. В самом деле, в MySQL не возможно использовать статью WHERE во вставлении данных, так что я предполагаю, что здесь он будет похожим (я не знаю, что механизм базы данных использует codeigniter).

Следовательно, ты был бы должен использовать один UPDATE (обновление) вместо одного INSERT (вставление), в котором если, что позволена статья WHERE.

Твой код был бы, согласно документации, таким образом:

function InsertRegistro($id,$data){
   $this->db->where('id',$id);
   $this->db->update('votaciones',$data);
}
1
ответ дан 03.12.2019, 17:59