考虑一对多关系的简单模式。父表的Id在子表中引用。
在php中我想使用语句mysql_query($query)
在表中插入一行。然后我将使用mysql_insert_id()
获取最后插入行的id。然后我将使用此id将另一行插入到子表中。
我的问题是,因为php页面可能会同时发生多个请求,如果以上两个语句不会一个接一个地运行(例如,有两个插入发生在父,然后两个插入孩子)?可能存在并发问题。那我们怎么克服这个呢?
有什么想法吗?
答案 0 :(得分:3)
当您致电mysql_insert_id()
时,它会获取该连接的最后插入ID ,因此两个PHP脚本不会相互干扰。
答案 1 :(得分:2)
与MySQL文档中一样:
mysql_insert_id()的值是 仅受发布的声明影响 在当前客户端连接中。 它不受陈述的影响 由其他客户发布。
所以......没问题。虽然,出于其他原因,我建议使用ORM(如Doctrine)。