cómo obtener el último id de inserción después de la consulta de inserción en el registro activo codeigniter

Tengo una consulta de inserción (estilo de registro activo) utilizada para insertar los campos de formulario en una tabla de MySQL. Deseo obtener el último id autoincrementado para la operación de inserción como el valor de retorno de mi consulta, pero tengo algunos problemas con él.

Dentro del controlador:

function add_post(){ $post_data = array( 'id' => '', 'user_id' => '11330', 'content' => $this->input->post('poster_textarea'), 'date_time' => date("Ymd H:i:s"), 'status' => '1' ); return $this->blog_model->add_post($post_data); } 

Y dentro del modelo:

 function add_post($post_data){ $this->db->trans_start(); $this->db->insert('posts',$post_data); $this->db->trans_complete(); return $this->db->insert_id(); } 

No obtengo nada como el retorno de add_post en el modelo

Prueba esto

 function add_post($post_data){ $this->db->insert('posts', $post_data); $insert_id = $this->db->insert_id(); return $insert_id; } 

En caso de inserciones múltiples, puede usar

 $this->db->trans_start(); $this->db->trans_complete(); 

Una transacción no es necesaria aquí, esto debería ser suficiente:

 function add_post($post_data) { $this->db->insert('posts',$post_data); return $this->db->insert_id(); } 
 $id = $this->db->insert_id(); 

De la documentación :

$ this-> db-> insert_id ()

El número de identificación de inserción al realizar inserciones de base de datos.

Por lo tanto, podrías usar algo como esto:

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

Debe usar $lastId = $this->db->insert_id();