Obtener el id del último registro actualizado

Puedo obtener la última identificación insertada usando $this->db->insert_id(); en codeigniter, ¿hay alguna manera de obtener el ID del último registro actualizado? Lo intenté con el mismo, es decir, $this->db->insert_id(); pero no funciona (devuelve 0 en su lugar).

Codeigniter no soporta eso. Tuve que hacer esto:

 $updated_id = 0; // get the record that you want to update $this->db->where(array('vrnoa'=>$data['vrnoa'], 'etype' => 'sale')); $query = $this->db->get('StockMain'); // getting the Id $result = $query->result_array(); $updated_id = $result[0]['stid']; // updating the record $this->db->where(array('vrnoa'=>$data['vrnoa'], 'etype' => 'sale')); $this->db->update('StockMain',$data); 
 $this->db->insert_id(); 

Esto le dará sólo la identificación insertada. Para obtener el identificador de fila actualizado, puede agregar una columna como última modificación (marca de tiempo) y actualizar esta columna con la marca de tiempo actual cada vez que ejecute la consulta de actualización. Después de su consulta de actualización simplemente ejecute esto:

 $query = $this->db->query('SELECT id FROM StockMain ORDER BY lastmodified DESC LIMIT 1'); $result = $query->result_array(); 

Obtendrá el ID en el conjunto de resultados.

Aquí es cómo puedes hacerlo más corto.

 $where = array('vrnoa'=>$data['vrnoa'], 'etype' => 'sale'); 

// Actualizar el registro

 $this->db->where($where); $this->db->update('StockMain',$data); 

// obtener el registro

 $this->db->where($where); return $this->db->get('StockMain')->row()->stid; 

Usando un codeigniter, y MY_MODEL una versión extendida. Esta fue una de las formas en que obtuve una relfe.

  function update_by($where = array(),$data=array()) { $this->db->where($where); $query = $this->db->update($this->_table,$data); return $this->db->get($this->_table)->row()->id; //id must be exactly the name of your table primary key } 

llame a esto Actualizaciones y obtenga la ID actualizada. un poco exagerado para ejecutar una consulta dos veces, supongo, pero también lo hacen todos los anteriores.

como se llama ?

  $where = array('ABC_id'=>5,'DEF_ID'=>6); $data = array('status'=>'ACCEPT','seen_status' =>'SEEN'); $updated_id= $this->friends->update_by($where,$data); 

Devuelve el id que usas en la cláusula where para actualizar

 function Update($data,$id){ $this->db->where('id', $id); $this->db->update('update_tbl',$data); return $id; } 

Prueba de esta manera:

  //update public function update($table, $where, $data) { // get the record that you want to update $this->db->where($where); $query = $this->db->get($table); // getting the Id $row = array_values($query->row_array()); $updated_id = $row[0]; // updating the record $updated_status = $this->db->update($table, $data, $where); if($updated_status): return $updated_id; else: return false; endif; }