wake-up-neo.net

Wie erhalte ich die zuletzt eingefügte Zeilen-ID aus der WordPress Datenbank?

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.

84
Morgan Cheng

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

167
jsnfwlr

So habe ich es in meinem Code gemacht

 ...
 global $wpdb;
 $query =  "INSERT INTO... VALUES(...)" ;
 $wpdb->query(
        $wpdb->prepare($query)
);
return $wpdb->insert_id;
...

Weitere Klassenvariablen

So etwas sollte es auch tun:

$last = $wpdb->get_row("SHOW TABLE STATUS LIKE 'table_name'");
$lastid = $last->Auto_increment;
0
Martin