PHP MySQLi вставляет идентификаторы из multi_query ()

Есть ли способ получить последние сгенерированные идентификаторы auto_increment после вставки нескольких строк с помощью функции mysqli multi_query?

РЕДАКТИРОВАТЬ:

Мне удалось заставить его работать, добавив SELECT LAST_INSERT_ID (); после каждого запроса INSERT в многопроцессорном запросе, а затем используйте mysqli_use_result для получения всех идентификаторов, и я думаю, что это лучший способ.

Вы можете получить различные идентификаторы вставки, вызвав next_result() MySQLi для каждого последовательного оператора вставки. Насколько мне известно, вам не нужно сохранять какие-либо результаты, пока запросы являются вставными операторами или чем-то другим, которые не возвращают набор результатов.

 $sql = new MySQLi("..."); $query = "INSERT STATEMENT NUMBER ONE;"; $query .= "INSERT STATEMENT NUMBER TWO;"; $query .= "INSERT STATEMENT NUMBER THREE"; $sql->multi_query($query); // The first insert id will be available at once $id1 = $sql->insert_id; // The second needs to be handeled a little differently $sql->next_result(); $id2 = $sql->insert_id; // And lastly the third one $sql->next_result(); $id3 = $sql->insert_id; 

Вы также можете поместить это в цикл, если вы не уверены в том, сколько ведомостей вставки есть:

 $ids = array(); do { $ids[] = $sql->insert_id; $sql->next_result(); } while($sql->more_results()); 

Это непроверенный псевдокод (как вы могли подумать), но он должен работать.