Получить идентификатор автоинкремента после запроса вставки, выполненного с подготовленным оператором - PullRequest
6 голосов
/ 19 сентября 2009

Если я выполню запрос вставки с хранимой процедурой с php и функциями mysqli _*, есть ли способ получить значение поля id автоинкремента?
mysqli->insert_id не похоже на работу.

Ответы [ 4 ]

8 голосов
/ 19 сентября 2009

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

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

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

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

1 голос
/ 19 сентября 2009

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

   SET @saved_id = LAST_INSERT_ID()

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

   SELECT @saved_id
1 голос
/ 19 сентября 2009

Вы можете попытаться сделать запрос к MySql , например так:

SELECT LAST_INSERT_ID()

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

0 голосов
/ 07 января 2014

mysqli->insert_id (где mysqli представляет ваше подключение к базе данных) должен использоваться непосредственно после вставки. Если вы выполняете другие запросы по тому же соединению перед попыткой прочитать insert_id возвращается 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...