插入数据库后立即获得插入数据的主键字段id信息
问题描述:做项目时,有时我们需要同步获得插入数据的id以备其他操作使用。比如,在我们发表文章时,可能需要自定义文章分类,这时,我们所做的事情就分为了两步,提交数据后,首先 插入分类信息,获得分类id后 再将文章插入到数据库。解决方案:
第一种:在插入分类后获得最后一条数据的id既是所需的分类id信息,但这里有一个问题,如果多个人同时操作,那么你获得的可能并非你插入的数据。
第二种:使用mysql提供的方法返回操作id 如果直接写mysql 问题可以解决。但如果要用ci进行操作的话,该如何写呢。
简单示例:仅供参考
我们可以做个公共模型 暂且叫做 Common_model.php
然后写一个简单函数即可实现。为了操作方便,供多个模块使用,函数提供两个参数 一个是 数据表名称,一个是所要插入的数据数组。
/**
* @function insert_info_return
* @param$table $dataarr
* @return id
*
*/
function insert_info_return($table,$dataarr){
if($dataarr){
if($this->db->insert($table, $dataarr)){
$res = $this->db->query("SELECT LAST_INSERT_ID()")->row_array();
//print_r($res);
return $res['LAST_INSERT_ID()'];
//return true;
}
}else{
return false;
}
}
测试代码,仅供参考
哥,不用这么麻烦,$this->db->insert_id();搞定 本帖最后由 yuvista 于 2012-11-20 10:56 编辑
楼上正解,CI提供这个查询辅助函数。 jeongee 发表于 2012-11-20 10:50 static/image/common/back.gif
哥,不用这么麻烦,$this->db->insert_id();搞定
啊 谢谢 jeongee,我悲剧了:'( 星语 发表于 2012-11-20 10:54 static/image/common/back.gif
啊 谢谢 jeongee,我悲剧了
:lol 多看手册,哈哈哈 jeongee 发表于 2012-11-20 10:59 static/image/common/back.gif
多看手册,哈哈哈
恩,谨记好高骛远,老老实实做事,jeongee 在上 顶了。
页:
[1]