多个mysql_insert_id

时间:2013-10-30 11:44:02

标签: php mysql mysql-insert-id

我有3个这样的结构表,

  

员工> id(PK),名称

     

家庭> family_id(PK),id(员工PK)

     

父亲> father_id(PK),family_id(家庭PK),father_name

我知道我可以使用mysql_insert_id()LAST_INSERT_ID获取最后插入的ID,我想获取ID并将其插入每个表中,如下所示:

INSERT INTO employee VALUES('', '<value>')
//
//
INSERT INTO family VALUES('', '".mysql_insert_id()."')
// id from employee PK
//
INSERT INTO father VALUES('', '".mysql_insert_id()"', '')
// id from family PK

我做对了吗?如果是的话,有没有更好的方法来做同样的事情?

谢谢。 :)

1 个答案:

答案 0 :(得分:0)

是的,这是正确的方法(考虑到有关mysql_ fns的警告)。但是你在第二和第三个例子中引用了一个整数值 - 这是一个坏主意。

这种方法的缺点是它需要多次往返数据库,即使没有服务器端解析预准备语句(发送查询,检索结果,发送插入ID请求,检索插入ID X 3)这可能是一个性能瓶颈。

如果是这种情况,那么将其打包为Mysql函数允许操作作为对DBMS的单个调用进行竞争(使用函数而不是过程,因为前者可以返回插入ID)。