$wpdb->insert_id în WordPress
Folosesc $wpdb->insert pentru a insera date în tabelul plugin-ului meu. Cum pot obține ID-ul noii linii pe care tocmai am inserat-o? Deoarece am mulți utilizatori care adaugă date în tabel, nu pot folosi $wpdb->insert_id Pentru că nu este neapărat ultimul introdus.

Nu există altă cale, dar nu văd de ce ai avea nevoie de altceva în afară de asta. Cred că ID-ul inserat accesat prin $wpdb este ultimul ID pentru această instanță a WPDB, alte inserări nu ar trebui să afecteze acest lucru, dar nu sunt sigur.
<?php
$wpdb->insert("QUERY");
$this_insert = $wpdb->insert_id;
?>

@toscho dar o interogare făcută de alt utilizator influențează ID-ul de insert pe care îl primești înapoi dacă ei inserează o interogare exact între insert-ul tău și citirea rezultatului?

$wpdb->insert_id
este global în cadrul sesiunii de bază de date. Deoarece WordPress creează o nouă sesiune pentru fiecare sesiune de utilizator, acest lucru nu reprezintă o problemă, chiar și atunci când se utilizează un pool de conexiuni.
Singura limitare este că această variabilă va conține întotdeauna ultimul ID auto-incrementat inserat, așa că trebuie să verifici după fiecare operație de inserare.
Dacă dorești să capturezi lista de înregistrări nou inserate, poți face acest lucru în cadrul unei proceduri stocate și să le capturezi într-o tranzacție. Sau poți face acest lucru în interiorul unui trigger.
