I've found a few answers for this using mySQL alone, but I was hoping someone could show me a way to get the ID of the last inserted or updated row of a mysql DB when using PHP to handle the inserts/updates.
Currently I have something like this, where column3 is a unique key, and there's also an id column that's an autoincremented primary key:
$query ="INSERT INTO TABLE (column1, column2, column3) VALUES (value1, value2, value3) ON DUPLICATE KEY UPDATE SET column1=value1, column2=value2, column3=value3";
$my_id = mysql_insert_id();
INSERT INTO table (a) VALUES (0) ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id)
Here's the answer, as suggested by Alexandre:
when you use the id=LAST_INSERT_ID(id) it sets the value of mysql_insert_id = the updated ID-- so your final code should look like:
<? $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();
This will return the right value for $my_id regardless of update or insert.