Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > как узнать id вставляемой записи?


Автор: BrutalizedProgrammer 28.11.2006, 20:25
Проблема такова, что когда я вставляю в таблицу
(в которой есть поле AUTO_INCREMENT PRIMARY KEY) запись,
то мне надо узнать значение этого самого AUTO_INCREMENT PRIMARY KEY поля,
которое сгенерировалось при вставке и тем самым соответствует моей записи.
(хух... хз... я думаю вы поймете, что я хочу сказать smile )

Ведь если, например, выбирать по наибольшему значению,
надеясь, что именно оно является тем, которое вставилось
в предыдущем запросе, то можна легко ошибиться - 
а вдруг а промежутке времени между вставкой и выборкой
кто-то другой запустил тот же скрипт и вставил свою запись?(что вполне вероятно)
тогда я получу не то значение которое мне нужно... 

Подскажите пожалуйста способ.

Автор: Piphon 28.11.2006, 20:52
После запроса INSERT.

Либо запрос:
Код

SELECT LAST_INSERT_ID()


Либа функция
Код

mysql_insert_id()

Автор: BrutalizedProgrammer 28.11.2006, 21:11
а это гарантирует, что я получу именно тот, мой id,
а не какой-то левый, который был вставлен кем-то сразу после или 
одновременно с моей записью?

Автор: Piphon 28.11.2006, 21:34
Не должен. http://www.mysql.ru/docs/man/Getting_unique_ID.html.

Автор: BrutalizedProgrammer 28.11.2006, 22:31
прочитал... вроде обнадеживает  smile 
спасибо за инфо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)