Just faced following situation
Have file post.php
which includes another file (like insert.php
).
Whole code to insert in mysql is located in insert.php
In insert.php
is code $id_of_inserted_row = $db->lastInsertId();
Then in insert.php
is echo $id_of_inserted_row;
which shows correct value.
But echo $id_of_inserted_row;
in post.php
shows incorrect value (as i see shows 7 numbers less than actual value). I do not understand why, just need to take into account.
Update
Sorry, above written was because inserted in two tables and mistakenly used the same $id_of_inserted_row = $db->lastInsertId();
for both tables.
So i have the same conclusion as in other answers: lastInsertId()
gets id of last inserted row.
Faced situation. I inserted 2 rows in mysql. In such case i see that lastInsertId() is id of the first inserted row (not the last). Do not understand why...
Found answer https://stackoverflow.com/a/12574752/2118559
Important If you insert multiple rows using a single INSERT statement, LAST_INSERT_ID() returns the value generated for the first inserted row only. The reason for this is to make it possible to reproduce easily the same INSERT statement against some other server.