How can I make sure that PDO's lastInsertId() is not that of another simultaneous insert?

mysql, pdo, php

Solution

`lastInsertId()` returns the identifier of the last row inserted on that connection, so concurrent users (with different connections to the database) will not interfere.

Problem

I am doing a signup form with an `INSERT` SQL query using PDO. After this INSERT, I want to extract the `userid` (auto incrementing, primary key) that was just created, and `INSERT` it into another table (a "confirmation code" table) But how can I make sure that this userid is not that of a second user who registered 1/1000th of a second later that the first user? Should I find some way of locking the table? Should I use transactions?

Original source