問題描述
我的 wordpress 外掛有一個表,其中包含一個名為 ID 的 AUTO_INCREMENT 主鍵欄位。當一個新行插入到表中時,我想獲取插入的 ID 值。
該功能是使用 AJAX 將資料釋出到伺服器以插入資料庫。在 AJAX 響應中返回新的行 ID 以更新客戶端狀態。多個客戶端可能會同時將資料釋出到伺服器。所以,我必須確保每個 AJAX 請求得到 EXACT 新的行 ID 作為響應。
在 PHP 中,有一個名為 mysql_insert_id 的方法用於此功能。但是,只有引數是上次操作的 link_identifier,才有效。我的資料庫操作是 $ wpdb 。如何從 $ wpdb 中提取 link_identifier 以確保 mysql_insert_id 有效?有沒有其他方法從 $ wpdb 獲取 last-inserted-row ID?
謝謝。
最佳解決方案
直接在插入的 $wpdb->insert()之後,執行以下操作:
$lastid = $wpdb->insert_id;
關於如何做 wordpress 方式的更多資訊可以在 wordpress codex 中找到。以上詳細資訊見 wpdb class page
次佳解決方案
這是我在程式碼中如何做到的
...
global $wpdb;
$query = "INSERT INTO... VALUES(...)" ;
$wpdb->query(
$wpdb->prepare($query)
);
return $wpdb->insert_id;
...
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。