Search code examples
phpmysqldatabasepdolastinsertid

PDO + PHP lastInsertId() issue


Wouldn't there be a problem with it if for example when a user clicks on a link, a new row is automatically inserted and then the php code requests the last inserted id, and at the same time another row is inserted by another user, so the returned id is actually not the one I'm expecting..?

Am I wrong? Is there a way to do the same without that 'security' hole?
(like maybe from within the prepared statement or something...)

P.S the id is automatically generated.

Thank you.


Solution

  • To counteract this you would use a transaction.

    This would essentially isolate your insert from others, so as long as your Insert/lastInsertId() call is within the same transaction, it will work just fine.