Are there any options to get the last insert id of a new record in CodeIgniter?
$last_id = $this->db->insert('tablename',
array('firstcolumn' => 'value',
'secondcolumn' => 'value')
);
Considering the table consits of fields id (autoincrement) firstcolumn and secondcolumn.
This way you can use the insert id in the following code.
Shame on me...
I looked at the user guide and the first function is $this->db->insert_id();
This also works with activerecord inserts...
EDIT: I updated the link
Last insert id means you can get inserted auto increment id by using this method in active record,
$this->db->insert_id()
// it can be return insert id it is
// similar to the mysql_insert_id in core PHP
You can refer this link you can find some more stuff.
Information from executing a query
for Specific table you cannot use $this->db->insert_id() . even the last insert happened long ago it can be fetched like this. may be wrong. but working well for me
$this->db->select_max('{primary key}');
$result= $this->db->get('{table}')->row_array();
echo $result['{primary key}'];
List of details which helps in requesting id and queries are
For fetching Last inserted Id :This will fetching the last records from the table
$this->db->insert_id();
Fetching SQL query add this after modal request
$this->db->last_query()
$this->db->insert_id();
Try this As your desired question.
Try this.
public function insert_data_function($your_data)
{
$this->db->insert("your_table",$your_data);
$last_id = $this->db->insert_id();
return $last_id;
}
$this->db->insert_id();
Returns the insert ID number when performing database inserts
Query Helper Methods for codeigniter-3
if($this->db->insert('Your_tablename', $your_data)) {
return $this->db->insert_id();
}
return false
After your insert query, use this command $this->db->insert_id();
to return the last inserted id.
For example:
$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.