php 函数 last_insert_id() 不适用于 REPLACE INTO 查询
Posted
技术标签:
【中文标题】php 函数 last_insert_id() 不适用于 REPLACE INTO 查询【英文标题】:php function last_insert_id() is not working with REPLACE INTO query 【发布时间】:2010-04-15 10:44:24 【问题描述】:我正在使用 REPLACE INTO 查询插入到表中,但在使用 mysql_query() 函数执行查询后,如果我使用 last_insert_id() 它只给我 0 值。
为什么会这样?以及如何克服这种行为。
:潘卡杰
【问题讨论】:
【参考方案1】:您可以尝试改用INSERT INTO ... ON DUPLICATE KEY UPDATE
。它完成与REPLACE INTO
相同的事情,但在单个服务器端操作中。 REPLACE INTO
最终会导致两种操作:删除旧的,插入新的。
但无论查询类型如何,您都必须确保表的主键是auto_increment
字段。 last_insert_id() 否则无法正常工作。
【讨论】:
【参考方案2】:REPLACE INTO
似乎不影响通过last_insert_id()
获取的值。
从这一点来看,这似乎是预期的行为:
LAST_INSERT_ID()
give wrong value after REPLACE INTO
query
LAST_INSERT_ID()
【讨论】:
这适用于您指定自动增量字段的值(即关闭魔法 ;-))。 PankajK,您的问题是这样的吗?以上是关于php 函数 last_insert_id() 不适用于 REPLACE INTO 查询的主要内容,如果未能解决你的问题,请参考以下文章
PHP - 插入并将 LAST_INSERT_ID() 保存到变量中
PHP SQL 将 LAST_INSERT_ID() 赋值给一个变量
我在 php 和 mysql 中使用 LAST_INSERT_ID() 但我无法得到结果。为啥?