型号:
$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。
答案 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);