The ‘id’ field of my table auto increases when I insert a row. I want to insert a row and then get that ID.
I would do it just as I said it, but is there a way I can do it without worrying about the time between inserting the row and getting the id?
I know I can query the database for the row that matches the information that was entered, but there is a high change there will be duplicates, with the only difference being the id.
See
mysqli_insert_id().Whatever you do, don’t insert and then do a "
SELECT MAX(id) FROM mytable". Like you say, it’s a race condition and there’s no need.mysqli_insert_id()already has this functionality.Another way would be to run both queries in one go, and using
MySQL‘sLAST_INSERT_ID()method, where both tables get modified at once (and PHP does not need any ID), like: