Đây là câu trả lời, theo gợi ý của Alexandre:
khi bạn sử dụng id =LAST_INSERT_ID (id), nó sẽ đặt giá trị của mysql_insert_id =ID đã cập nhật-- vì vậy mã cuối cùng của bạn sẽ giống như sau:
<?
$query = mysql_query("
INSERT INTO table (column1, column2, column3)
VALUES (value1, value2, value3)
ON DUPLICATE KEY UPDATE
column1 = value1,
column2 = value2,
column3 = value3,
id=LAST_INSERT_ID(id)
");
$my_id = mysql_insert_id();
Điều này sẽ trả về giá trị phù hợp cho $ my_id bất kể cập nhật hoặc chèn.