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.