首頁 >後端開發 >php教程 >如何在 PHP/MySQL 中高效檢索 INSERT 後自動產生的 ID?

如何在 PHP/MySQL 中高效檢索 INSERT 後自動產生的 ID?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-07 22:20:18741瀏覽

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

在PHP/MySQL 中檢索插入行的ID

使用MySQL 資料庫時的常見任務之一是插入一行並隨後檢索其自動產生的ID。這個過程涉及兩個不同的查詢,可能會在插入行和獲取 ID 之間引入時間間隔,這可能會導致競爭條件。

幸運的是,PHP 為這個問題提供了一個簡單的解:mysqli_insert_id() 函數。以下程式碼示範了其用法:

$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);

mysqli_insert_id() 直接擷取最近的 INSERT 語句產生的 ID,無需額外查詢。這種方法保證檢索到的 ID 對應於剛插入的行。

另一種方法是在單一查詢中利用 MySQL 的 LAST_INSERT_ID() 函數。透過組合多個INSERT 語句,可以同時更新多個表並避免單獨檢索ID 的麻煩:

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

需要注意的是,每個MySQL 連接都維護自己的ID 序列,防止之間潛在的衝突並發連線。

以上是如何在 PHP/MySQL 中高效檢索 INSERT 後自動產生的 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn