如何从插入的行中获取最后一个id?
I'm trying to get the ID of my master table to be inserted to my transaction table. The insert is happening inside a loop.
Behavior:
- Insert master
- Get id
- Insert Transaction
- Insert Master
- Get id
- Insert Transaction
Controller:
//Insert Master
foreach($arr_master as $res_master){
/*$data['ID_REQUIREMENT_TRANS'] this is an auto-increment column. Inserted automatically*/
$data['ID_REQUIREMENT'] = $res_master;
$data['SENT_BY_DATE'] = date("Y-m-d H:i:s");
$data['STATUS'] = 1;
$this->MAdmin->ins_assign_pic($data);
//Insert Trans
foreach($arr_trans as $res_trans){
$data_d['ID_REQUIREMENT_TRANS'] = $id; //Need to get the last inserted id of the master table
$data_d['RECEIVED_BY'] = $res_trans;
$data_d['RECEIVED_BY_DATE'] = NULL;
$data_d['STATUS'] = 1;
$this->MAdmin->ins_assign_pic_d($data_d);
}
}
Model:
function ins_assign_pic($data){
$q_ins_assign_pic = $this->db->insert('pm_requirement_assign_pic',$data);
return $q_ins_assign_pic;
$id = $this->db->insert_id();
return $id; //How to send this to my controller
return true;
}
function ins_assign_pic_d($data_d){
$q_ins_assign_pic_d = $this->db->insert('pm_requirement_assign_pic_d',$data_d);
return $q_ins_assign_pic_d;
}
我正在尝试将主表的ID插入到我的事务表中。 插入发生在循环内。 p>
行为: p>
- 插入主文件 li>
- 获取ID li>
- 插入交易 li>
- 插入主文件 li>
- 获取ID li>
- 插入交易 li>
ul>
控制器: p>
//插入Master foreach($ arr_master as $ res_master){ / * $ data ['ID_REQUIREMENT_TRANS']这是一个自动增量列。 自动插入* / $ data ['ID_REQUIREMENT'] = $ res_master; $ data ['SENT_BY_DATE'] = date(“Y-m-d H:i:s”); $ data ['STATUS'] = 1; $ this-> MAdmin-> ins_assign_pic($ data); //插入Trans foreach($ arr_trans as $ res_trans){ $ data_d ['ID_REQUIREMENT_TRANS' ] = $ id; //需要获取主表的最后插入ID $ data_d ['RECEIVED_BY'] = $ res_trans; $ data_d ['RECEIVED_BY_DATE'] = NULL; $ data_d ['STATUS'] = 1; $ this-> MAdmin-> ins_assign_pic_d($ data_d); } } code> pre>
型号: p>
function ins_assign_pic($ data){ $ q_ins_assign_pic = $ this-> db-> insert('pm_requirement_assign_pic',$ data); 返回$ q_ins_assign_pic; $ id = $ this-> db-> insert_id(); 返回$ id; //如何将其发送到我的控制器 返回true; } 函数ins_assign_pic_d($ data_d){ $ q_ins_assign_pic_d = $ this-> db-> insert('pm_requirement_assign_pic_d',$ data_d) ; 返回$ q_ins_assign_pic_d; } code> pre> div>
Try controller
$id = $this->MAdmin->ins_assign_pic($data);
And model
function ins_assign_pic($data){
$q_ins_assign_pic = $this->db->insert('pm_requirement_assign_pic',$data);
//return $q_ins_assign_pic;
$id = $this->db->insert_id();
return $id; //How to send this to my controller
// return true;
}
Way 1
SELECT MAX( id ) FROM tableName;
Way 2
SELECT tableName.id FROM tableName ORDER BY tableName.id DESC LIMIT 0,1;
You are doing little wrong here.
once return
call in function then it will not execute further.
Model:
function ins_assign_pic($data){
$q_ins_assign_pic = $this->db->insert('pm_requirement_assign_pic',$data);
if($q_ins_assign_pic){
return $this->db->insert_id();
} else {
retun false;
}
}
Controller :
$newID = $this->MAdmin->ins_assign_pic($data);
You could get the max id from the table:
select max(id) from table
mysqli_insert_id() is the Function you are looking for.