Home > Backend Development > PHP Tutorial > How Can I Efficiently Retrieve the Auto-Generated ID After an INSERT in PHP/MySQL?

How Can I Efficiently Retrieve the Auto-Generated ID After an INSERT in PHP/MySQL?

Mary-Kate Olsen
Release: 2024-12-07 22:20:18
Original
748 people have browsed it

How Can I Efficiently Retrieve the Auto-Generated ID After an INSERT in PHP/MySQL?

Retrieving Inserted Row's ID in PHP/MySQL

One of the common tasks when working with MySQL databases is inserting a row and subsequently retrieving its auto-generated ID. This process involves two distinct queries, potentially introducing a time gap between inserting the row and fetching the ID, which can lead to race conditions.

Fortunately, PHP provides a straightforward solution to this issue: the mysqli_insert_id() function. The following code demonstrates its usage:

$link = mysqli_connect('127.0.0.1', 'my_user', 'my_pass', 'my_db');
mysqli_query($link, "INSERT INTO mytable (1, 2, 3, 'blah')");
$id = mysqli_insert_id($link);
Copy after login

mysqli_insert_id() directly retrieves the ID generated by the most recent INSERT statement, eliminating the need for additional queries. This approach guarantees that the retrieved ID corresponds to the row just inserted.

An alternative method is to utilize MySQL's LAST_INSERT_ID() function within a single query. By combining multiple INSERT statements, it becomes possible to update several tables simultaneously and avoid the hassle of separate ID retrieval:

mysqli_query($link, "INSERT INTO my_user_table ...; INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");
Copy after login

It's crucial to note that each MySQL connection maintains its own ID sequence, preventing potential conflicts between concurrent connections.

The above is the detailed content of How Can I Efficiently Retrieve the Auto-Generated ID After an INSERT in PHP/MySQL?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template