我正在使用REPLACE INTO查询插入到表中,但通过使用mysql_query()函数执行查询后,如果我使用last_insert_id()它只给我0值。php函数last_insert_id()与REPLACE INTO查询不起作用
为什么会这样呢?我该如何克服这种行为。
:潘卡
我正在使用REPLACE INTO查询插入到表中,但通过使用mysql_query()函数执行查询后,如果我使用last_insert_id()它只给我0值。php函数last_insert_id()与REPLACE INTO查询不起作用
为什么会这样呢?我该如何克服这种行为。
:潘卡
REPLACE INTO
似乎并没有影响,可以通过last_insert_id()
获得vaue。
这似乎是预期的行为,从这一判断:
你可以尝试使用INSERT INTO ... ON DUPLICATE KEY UPDATE
代替。它完成与REPLACE INTO
相同的功能,但是在单个服务器端操作中。 REPLACE INTO
最终可能导致两个操作:删除旧的,插入新的。
但是无论查询类型如何,您都必须确保表的主键是auto_increment
字段。否则,last_insert_id()无法正常工作。
如果您指定自动增量字段的值(即关闭魔法;-)),则适用。您的疑问PankajK是这种情况吗? – VolkerK 2010-04-15 11:19:56