Вы можете получить различные идентификаторы вставки, вызывая MySQLi next_result()
для каждого последовательного оператора вставки.Насколько я знаю, вам не нужно хранить какие-либо результаты, если запросы представляют собой операторы вставки или что-то еще, что не возвращает набор результатов.
$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());
Это непроверенный псевдокод (как вы, возможно, предполагали), но он должен работать.