PHP: Mysql Auto Increment Id Issue / Limit

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.

Advertisements