CodeIgniter activerecord, recuperar la última identificación de inserción?


153

¿Hay alguna opción para obtener la última identificación de inserción de un nuevo registro en CodeIgniter?

$last_id = $this->db->insert('tablename',
    array('firstcolumn' => 'value',
    'secondcolumn' => 'value')
);

Teniendo en cuenta la tabla consta de campos id (incremento automático) firstcolumn y secondcolumn.

De esta manera, puede usar la identificación de inserción en el siguiente código.


44
Sigo llegando a esta pregunta varias veces. ¡Muchas gracias!
giripp

Respuestas:


277

Me avergüenza...

Miré la guía del usuario y la primera función es$this->db->insert_id();

Esto también funciona con inserciones de registro activo ...

EDITAR: actualicé el enlace


29
la guía del usuario es tu mejor amigo para cosas como esta. He estado usando codeigniter durante más de 2 años y todavía encuentro funciones como esta que nunca supe.
Tom Schlick

8
Asegúrese de ajustar su inserción y esta función en una transacción, ya que el programador de consultas puede insertar otro objeto antes de ejecutar esta función
parker.siky

3
el enlace está muerto, enlace actualizado: ellislab.com/codeigniter/user-guide/database/helpers.html
womd

¡Necesito usar insert_id (), pero no sé si insert_id () otorgado para obtener ID pertenece a insert () antes! Quiero decir, ¿es posible recuperar ID pertenecer a otro insert () en otra solicitud?
NM

37

La última identificación de inserción significa que puede insertar la identificación de incremento automático mediante el uso de este método en el registro activo,

$this->db->insert_id() 
// it can be return insert id it is 
// similar to the mysql_insert_id in core PHP

Puede consultar este enlace, puede encontrar algunas cosas más.

Información de ejecutar una consulta


El enlace no es correcto. Corrija el enlace. nuevo enlace codeigniter.com/userguide3/database/helpers.html
Shaiful Islam

11

para la tabla específica no puede usar $ this-> db-> insert_id (). incluso el último inserto ocurrió hace mucho tiempo, se puede obtener de esta manera. puede estar mal. pero trabajando bien para mi

     $this->db->select_max('{primary key}');
     $result= $this->db->get('{table}')->row_array();
     echo $result['{primary key}'];

8

Lista de detalles que ayudan a solicitar id y consultas son

Para buscar el último Id insertado: Esto buscará los últimos registros de la tabla

$this->db->insert_id(); 

Obteniendo consulta SQL, agregue esto después de la solicitud modal

$this->db->last_query()


6

Después de su consulta de inserción, use este comando $this->db->insert_id();para devolver la última identificación insertada.

Por ejemplo:

$this->db->insert('Your_tablename', $your_data);

$last_id =  $this->db->insert_id();

echo $last_id // assume that the last id from the table is 1, after the insert query this value will be 2.

5

Prueba esto.

public function insert_data_function($your_data)
{
    $this->db->insert("your_table",$your_data);
    $last_id = $this->db->insert_id();
    return $last_id;
}

@Dennis Decoene también puede visitar este enlace ellislab.com/codeIgniter/user-guide .
Raham

3
$this->db->insert_id();

Devuelve el número de ID de inserción cuando se realizan inserciones de bases de datos

Métodos de ayuda de consulta para codeigniter-3


2
$this->db->insert_id()  

// por favor prueba esto


Esta respuesta duplicada no agrega ningún valor nuevo a la página. Debería ser eliminado.
mickmackusa

1
if($this->db->insert('Your_tablename', $your_data)) {
    return $this->db->insert_id();
}
return false 

0

En codeigniter 3, puede hacerlo de la siguiente manera:

if($this->db->insert("table_name",$table_data)) {
    $inserted_id = $this->db->insert_id();
    return $inserted_id;
}

Puede obtener ayuda para Codeigniter 3 desde aquí https://codeigniter.com/user_guide/database/helpers.html

En Codeigniter 4, puede obtener la última identificación insertada de la siguiente manera:

$builder = $db->table("your table name");
if($builder->insert($table_data)) {
    $inserted_id = $db->insertID();
    return $inserted_id;
}

Puede obtener ayuda para Codeigniter 4 desde aquí https://codeigniter4.github.io/userguide/database/helpers.html

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.