Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2011, 11:04   #1
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
Восклицание получение id инкремента

Доброго времени суток, товарищи коллеги!
Вопрос, на который вообщем - то не сильно надеюсь получить ответ)
Как узнать id (auto increment поле в таблице) последнего инкремента.

Ну к примеру прошол запрос к базе

mysql_query("INSERT....')
он записал новую строку в таблицу с новеньким id который доселе в этой таблице не фигурировал.
Есть функиция mysql_insert_id , которая получает id, сгенерированный предыдущей операцией INSERT, НО что если во время между

mysql_query("INSER....") и mysql_insert_id прошел еще один запрос с инсертом из другого скрипта к примеру, и mysql_insert_id выдаст уже id ненужной нам строки которая по сути последняя, шанс конечно не особо большой но все же есть.

Другой вариант после инсерта пользовать еще одним запросом к базе и вытаскивать id только что сделаной записи. Что не очень удобно.

Вопрос у какого какие мысли на этот счет и как можно сделать по другому, может там в самом запросе есть какая нито хитрость может еще что...
думай как баг, действуй как баг, и ты найдешь баг )
mrgrudge вне форума Ответить с цитированием
Старый 25.02.2011, 11:41   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Вообще-то last_isert_id() возвращает id текущей сессии, поэтому вы в 99,99% случаев получите свой только что вставленный результат.
Другой вопрос если вам нужна последняя запись, с учетом одновременного множества записей. Для этого правильно проектируйте базу и используйте поле автоинкремента вместо дополнительного получения SELECT MAX(id)
Cronos20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение файлов M@riy@ Работа с сетью в Delphi 1 02.11.2010 15:30
Получение вектора PastoriXx Общие вопросы .NET 0 14.05.2010 19:52
программу с примерами постфиксной и префиксной формами инкремента и декремента Angel of death Помощь студентам 3 17.11.2009 18:13
Получение доступа Ламер_001 C/C++ Сетевое программирование 0 20.01.2009 08:51