Mein WordPress Plugin hat eine Tabelle mit einem AUTO_INCREMENT Primärschlüsselfeld namens ID. Wenn eine neue Zeile in die Tabelle eingefügt wird, möchte ich um den ID-Wert der Einfügung zu erhalten.
Die Funktion besteht darin, mit AJAX Daten an den Server zu senden, um sie in die Datenbank einzufügen. Die neue Zeilen-ID wird in der Antwort AJAX zur Aktualisierung des Client-Status zurückgegeben Es ist möglich, dass mehrere Clients gleichzeitig Daten auf den Server senden. Daher muss sichergestellt werden, dass bei jeder AJAX) - Anforderung die EXAKTE neue Zeilen-ID als Antwort abgerufen wird.
In PHP gibt es eine Methode mit dem Namen mysql_insert_id . Sie ist jedoch für Rennen gültig Bedingung nur, wenn das Argument link_identifier der letzten Operation ist. Meine Operation mit der Datenbank ist auf $ wpdb. Wie extrahiere ich den link_identifier aus $ wpdb, um sicherzustellen, dass mysql_insert_id funktioniert? Gibt es eine andere Möglichkeit, die zuletzt eingefügte Zeilen-ID von $ wpdb abzurufen?
Vielen Dank.
Gehen Sie direkt nach der Funktion $wpdb->insert()
, die das Einfügen ausführt, folgendermaßen vor:
$lastid = $wpdb->insert_id;
Weitere Informationen zur Vorgehensweise auf die Weise von WordPress) finden Sie im Codex WordPress=. Die obigen Details finden Sie hier in der Klasse wpdb Seite
So habe ich es in meinem Code gemacht
...
global $wpdb;
$query = "INSERT INTO... VALUES(...)" ;
$wpdb->query(
$wpdb->prepare($query)
);
return $wpdb->insert_id;
...
So etwas sollte es auch tun:
$last = $wpdb->get_row("SHOW TABLE STATUS LIKE 'table_name'");
$lastid = $last->Auto_increment;