我正在使用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