插入行后从表中获取自动递增的id

时间:2014-01-22 02:22:34

标签: jquery database codeigniter

型号:

$data = array( 'firstname' => $fname,
               'lastname' => $lname );

$result = $this->db->insert('users',$data);

假设代码插入了一个新行。在桌子上,我有3列,id,username,pass。 id自动递增。插入后,我将如何能够检索新插入的行的ID。假设我插入至少2行并使用相同的名字或姓氏。

这就是我的计划,我不确定它是否会奏效。

$sql = $this->db
    ->select('id')
    ->where(' ', $variable)
    ->from('user')
    ->get()
    ->result_array();

我不确定将什么放在我的where子句上,因为它可能包含具有相同名字和姓氏的行。我需要获取新插入行的自动增量ID。身份证也是我的PK。

1 个答案:

答案 0 :(得分:2)

您可以使用L $this->db->insert_id();

来获取它
$result = $this->db->insert('users',$data);
$latest_id = $this->db->insert_id();

了解更多吃Query Helpers

但是,如果您使用insert_batch()插入多个文件,这将无效,如果您计划插入多个数据,则只需从batch.SO获取最后插入的ID forloop然后在将数组样本中的插入键保存时执行正常插入

foreach($data as $v)
{
     //prep data colum name as key ,value as value
     $input['firstname'] = $v->firstname;
     $input['lastname'] = $v->lastname;

     //insert
     $this->db->insert('users',$input);
     //store keys in array
     $inserted_ids[] = $this->db->insert_id();

}

print_r($inserted_ids);