Получите автоинкрементный идентификатор после запроса на вставку, выполненного с подготовленным оператором

Я знаю на основе опыта, что, когда я пишу код без модульных тестов, я получу несколько проблем, которые подходят для фиксации, но когда я записал модульные тесты, я редко слышу о проблемах. Кроме того, со времени, проведенного при записи модульных тестов, я пишу лучший код для начала. Я смотрю на методы и думаю о способах, которыми они могли привести к сбою и создать их из запуска, чтобы не перестать работать или по крайней мере перестать работать лучшим способом.

Модульные тесты важны для записи лучшего кода, но это также сделает Вас лучшим разработчиком, потому что Вы области SEE, где вещи могли пойти не так, как надо и зафиксировать их, прежде чем Вы когда-либо доберетесь до тестирования.

6
задан Davide Gualano 19 September 2009 в 17:22
поделиться

3 ответа

Вы уверены, что последний выполненный вами запрос был INSERT?

mysqli-> insert_id кажется правильным ответом:

Возвращаемые значения

Значение Поле AUTO_INCREMENT , которое было обновлено по предыдущему запросу. Возвращает ноль, если не было предыдущего запроса на соединение или если запрос не обновить значение AUTO_INCREMENT .

8
ответ дан 10 December 2019 в 00:41
поделиться

Вы можете попробовать сделать запрос к MySql следующим образом:

SELECT LAST_INSERT_ID()

Не уверен если он работает с хранимыми процедурами.

1
ответ дан 10 December 2019 в 00:41
поделиться

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

   SET @saved_id = LAST_INSERT_ID()

Затем выполните этот запрос после вызова процедуры:

   SELECT @saved_id
1
ответ дан 10 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: