2015-05-25 2 views
0

Я использовал $mysqli->insert_id;, который вернул один ID. Как получить идентификаторы для нескольких вставленных строк в mysqli. Есть ли решение?Извлечь несколько идентификаторов

+1

Вы делаете ваши вставки в цикле? Если это так, добавьте возвращаемый идентификатор в массив на каждой итерации цикла. – foxbeefly

+0

Если вы используете цикл для вставки данных, то вы можете сделать массив оттуда только легко –

+0

@foxbeefly - Нет, я не использую цикл для массовой вставки, поскольку я помню, как он читал где-то, что замедляет производительность. – Aaron

ответ

1

Используйте следующий запрос:

SELECT * FROM myTable WHERE myColumn IN ($ids); 

Пожалуйста, обратитесь к this answer и его нити для получения дополнительной информации по этому вопросу.

EDIT: Непонятный вопрос. @DevLakshman получил правильную идею.

+0

На основе включения '$ mysqli-> insert_id;' Я думаю, @Aaron пытается получить идентификаторы записей по мере их вставки в базу данных, а не возвращать записи на основе идентификаторов нов. – foxbeefly

+0

Я просто перечитал вопрос, и, боюсь, я его неправильно истолковал. Я отредактирую свой ответ. –

0

Ваши следующие идентификаторы будут последовательностью сгенерированных $mysqli->insert_id + следующего n (количество строк вставки), так как ваш оператор делает это за одну транзакцию.

+0

Что делать, если одновременно происходит несколько вложений (транзакций)? – foxbeefly

0

Если вы выполняете свою вставку запрос в цикле затем получить идентификаторы от $mysqli->insert_id;, написав его в петле, или если вручную писать много запросов, то писать $mysqli->insert_id; соответственно ...

Смежные вопросы