Today, i learned a new limitation of using php function mysql_insert_id() … and it’s behavior with BIGINT data type. Due to the nature of my current project, we’ve BIGINT data type for auto id.
Documentation says something very crucial:
mysql_insert_id() converts the return type of the native MySQL C API function mysql_insert_id() to a type of long (named int in PHP).
If your AUTO_INCREMENT column has a column type of BIGINT, the value returned by mysql_insert_id() will be incorrect.
Instead, use the internal MySQL SQL function LAST_INSERT_ID() in an SQL query.
Note: Because mysql_insert_id() acts on the last performed query, be sure to call mysql_insert_id() immediately after the query that generates the value.
Hope it helps someone.