2009-12-31 42 views
133

¿Hay alguna opción para obtener la última identificación de inserción de un nuevo registro en CodeIgniter?CodeIgniter activerecord, recuperar el último id de inserción?

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

Considerando los conceptos de tabla de los campos id (autoincrement) firstcolumn y secondcolumn.

esta manera se puede utilizar el ID de inserción en el código siguiente.

+4

I Mantenga vienen a esta pregunta varias veces. ¡Muchas gracias! – giripp

Respuesta

259

La culpa es mía ...

Miré el user guide y la primera función es $this->db->insert_id();

Esto también funciona con inserciones de ActiveRecord ...

EDIT: He actualizado el enlace

+28

la guía de usuario es su mejor amigo para cosas como esta. He estado usando codeigniter por más de 2 años y todavía encuentro funciones como esta que nunca supe. –

+7

Asegúrese de envolver su inserción y esta función en una transacción que el planificador de consultas puede insertar otro objeto antes de ejecutar esta función –

+3

enlace está muerto, enlace de actualización: http://ellislab.com/codeigniter/user-guide/database/ helpers.html – womd

30

última ID de inserción significa que puede obtener insertada Identificación del 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 se pueden encontrar algunas cosas más.

Information from executing a query

+0

El enlace no es correcto. Por favor, corrija el enlace. nuevo enlace http://www.codeigniter.com/userguide3/database/helpers.html –

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

Devuelve el número ID de inserción cuando se realiza base de datos inserta

Query Helper Methods para CodeIgniter-3

5

probar esto.

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

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

10

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

 $this->db->select_max('{primary key}'); 
    $result= $this->db->get('{table}')->row_array(); 
    echo $result['{primary key}']; 
1
if($this->db->insert('Your_tablename', $your_data)) { 
    return $this->db->insert_id(); 
} 
return false 
6

$this->db->insert_id();

Prueba esta medida que su pregunta deseada.

3

Lista de datos que ayuda a solicitar Identificación y consultas son

Para ir a buscar Última Id insertado: Este será ir a buscar los últimos registros de la tabla

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

Obtención de SQL añadir este después de la solicitud modal

$this->db->last_query() 
Cuestiones relacionadas