$wpdb->insert_id
Я использую $wpdb->insert для вставки данных в таблицу моего плагина. Как мне получить id новой строки, которую я только что вставил? Поскольку у меня много пользователей, которые добавляют данные в таблицу, я не могу использовать $wpdb->insert_id Потому что это не обязательно будет последняя запись.

Нет другого способа, но я не понимаю, зачем вам может понадобиться что-то кроме этого. Я считаю, что insert_id, доступный через $wpdb, возвращает последний ID именно для этого экземпляра WPDB - другие вставки не должны на это влиять, хотя я не уверен.
<?php
$wpdb->insert("QUERY"); // Выполняем SQL-запрос на вставку
$this_insert = $wpdb->insert_id; // Получаем ID последней вставленной записи
?>

$wpdb
является глобальной переменной, все запросы используют один и тот же экземпляр.

@toscho но влияет ли запрос другого пользователя на ID вставки, который вы получаете, если они вставляют запрос прямо между вашей вставкой и чтением?

$wpdb->insert_id является глобальной переменной в рамках сессии базы данных. Поскольку WordPress создает новую сессию для каждой пользовательской сессии, это не является проблемой, даже при использовании пула соединений. Единственное предостережение заключается в том, что эта переменная всегда будет содержать последний вставленный автоинкрементный ID, поэтому вам нужно проверять его после каждой вставки. Если вам действительно нужно получить список вновь вставленных записей, вы можете сделать это внутри хранимой процедуры и захватить его в транзакции. Или внутри триггера.
