Multiple mysql_insert_id


Multiple 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

我做的对吗?如果是,有没有更好的方法来做完全相同的事情?

谢谢。:)

是的,这是正确的方法(考虑到关于 mysql_ fns 的警告)。但是您在第 2 个和第 3 个示例中引用了一个整数值 - 这是一个坏主意。

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

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