php函数last_insert_id()不能与REPLACE INTO查询一起使用

时间:2010-04-15 10:44:25

标签: php mysql lastinsertid

我正在使用REPLACE INTO查询插入到表中,但是在使用mysql_query()函数执行查询后,如果我使用last_insert_id(),它只给我0值。

为什么会发生这种情况?我怎样才能克服这种行为。

:的Pankaj

2 个答案:

答案 0 :(得分:4)

您可以尝试使用INSERT INTO ... ON DUPLICATE KEY UPDATE代替。它完成与REPLACE INTO相同的操作,但是在单个服务器端操作中。 REPLACE INTO最终会导致两个操作:删除旧操作,插入新操作。

但无论查询类型如何,您都必须确保表的主键是auto_increment字段。 last_insert_id()不能正常工作。

答案 1 :(得分:3)

REPLACE INTO似乎不会影响通过last_insert_id()获得的价值。

这似乎是预期的行为,从此判断: