我有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
我做对了吗?如果是的话,有没有更好的方法来做同样的事情?
谢谢。 :)
答案 0 :(得分:0)
是的,这是正确的方法(考虑到有关mysql_ fns的警告)。但是你在第二和第三个例子中引用了一个整数值 - 这是一个坏主意。
这种方法的缺点是它需要多次往返数据库,即使没有服务器端解析预准备语句(发送查询,检索结果,发送插入ID请求,检索插入ID X 3)这可能是一个性能瓶颈。
如果是这种情况,那么将其打包为Mysql函数允许操作作为对DBMS的单个调用进行竞争(使用函数而不是过程,因为前者可以返回插入ID)。