3

我想使用 PHP 和 MySQL 将数据插入数据表及其关联的多对多表中。数据表的自增主ID用于多对多表。所以,我需要知道要插入多对多表的数据表的 ID。

我目前的想法是,解决这个问题的最佳方法是使用循环,它首先插入数据表,然后使用 mysql_insert_id() 插入多对多表。这是解决这个问题的最好方法吗?

此外,我是否需要担心使用该函数获取错误的 ID?许多工作人员会同时使用这个数据脚本,所以我担心来自一个工作人员查询的 ID 最终会在调用另一个工作人员的 mysql_insert_id() 时返回。这是一个有效的担忧,如果是这样,我该如何处理?

4

2 回答 2

3

使用 auto_increment id调用mysql_insert_id()表是正确的方法。

只要mysql_insert_id()在调用插入行后直接调用mysql_query(),就不用担心得到错误的id。PHP 和 MySQL 会为您处理这一切。

于 2010-09-14T23:21:54.073 回答
-3

如果您可以锁定桌子。

LOCK TABLE myTable FOR WRITE;
SELECT MAX(id) FROM myTable;
INSERT....
INSERT....
INSERT....
SELECT MAX(id) FROM myTable;
UNLOCK TABLES;

这将阻止其他任何人对 myTable 进行任何操作,但是您将获得 id 的最小/最大范围。

-丹尼尔

于 2010-09-14T23:22:02.497 回答