SELECT LAST_INSERT_ID()
说明,即使是在并行的时候,多个程序都在插入,仍然能获得自己的ID,因为每个连接的会话号是不同的。
可以直接返回这个数到程序里面处理,也可以直接作为插入关联表的字段值,例如:
INSERT INTO user(name) VALUES ('xxx')//有自动生成UID
INSERT INTO user_birth(uid,birth) VALUES(LAST_INSERT_ID(), '1972-9-18')//向生日表插入刚才新用户的生日
你直接执行这么多条插入语句,那么这个函数是只能返回一个值,不过如果你换一个思路就可以了。你可以把四个sql拆开,用for或者foreach循环插入数据库,那么每一次返回的id就是你想要的结果了。
参考例子:
$arr = array(array('10','1','张三'),array('11','1','李四'));
$arr_id = array()
foreach($arr as $k=>$v)
{
$sql = 'insert into 表名('年龄','性别','姓名') values('$v[0]','$v[1]','$v[2]')'
mysql_query($sql)
$arr_id[] = msyql_insert_id()//将每次返回的id保存进数组
}
大致是这样的想法,代码不保证对,只是思路。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)