2013-07-26 18 views
2

“REPLACE INTO”我使用REPLACE INTO命令将/在MySQL表更新记录时,这是越来越受影响的行的ID。但是我想获得受REPLACE INTO影响的行的ID。如何获得使用MySQL中

我用lastInsertId()INSERT INTO,但它在这里没有用,因为如果我的记录已经存在,然后通过使用lastInsertId()REPLACE INTO,我会得到错误的ID。

那么,有没有存在在MySQL + PHP + PDO函数来获得ID?

+0

难道你不能更确定吗?提供测试用例和代码来重现?如果没有代码,很难验证你可能得到或误解的结果。谢谢。 –

回答

1

由于REPLACE INTO做了DELETE,然后一个INSERT您总能获得任何lastInsertId()功能(错了,因为在“不是一个你可能期望”)中的“错误”的ID。

因此,您必须忍受这一点,看看INSERT INTO ... ON DUPLICATE KEY UPDATE或指定您正在尝试完成的任务,以便我们可以提供进一步的建议。

+0

here更多信息http://mikefenwick.com/blog/insert-into-database-or-return-id-of-duplicate-row-in-mysql/ – jaczes

+0

感谢您的帮助。我只是想检查有没有像lastInsertID()替换INTO或没有任何可用的函数。 –