О работe mysql_insert_id();

Boom.Olezka

Новичок
О работe mysql_insert_id();

Функция mysql_insert_id() возвращает значение поля c типом AUTO_INCREMENT, последней добавленой записи. Получать значение mysql_insert_id() следует сразу после выполнения запроса.

Мой вопрос :) Какое значение будет возвращать mysql_insert_id() если два пользователя запустили скрипт в ОДИНАКОВОЕ время...

Пример скрипта, есть файл query.php

PHP:
$sql = "INSERT INTO news ('Topic', 'News data')";
mysql_query($sql);
$id = mysql_insert_id();
print($id);
Получается, что одновременно записываются две записи... Но какое знанчение вернётся в $id? Я даже незнаю как проверить это технически...
 

AndreyKl

Новичок
да всё просто. Вернёт правильно, проверено :)

Проверить просто, ставишь слип 30 между mysql_query и mysql_insert_id. После этого запускаешь скрипт во второй вкладке в браузере(без слип) и смотришь, что всё верно :)
 

Wicked

Новичок
AndreyKl
избавьте нас от вашего бреда.

Boom.Olezka
последний вставленный id сохраняется в св-вах соединения, который вставил эту запись. Так что конфликтов возникнуть просто не может.
 

Boom.Olezka

Новичок
А если речь идёт о десятках пользоваателей, а не о двух :) Получается что у каждого свое уникальное соединение и проблем не будет?
 

tony2001

TeaM PHPClub
>Получается что у каждого свое уникальное соединение и проблем не будет?
естественно.
 

Yaponchick

Новичок
Boom.Olezka
+ если почитать книжку про МСКЛ, можно узнать что запросы стоят в очереди =) а если очередь, то 99.9% правильный м_инс_ид.
 

Фанат

oncle terrible
Команда форума
Yaponchick
то есть, один на тысячу будет неправильный?
 

Wicked

Новичок
Yaponchick
и одновременная работа двух запросов невозможна?
 

Yaponchick

Новичок
Фанат
Wicked
Вы меня извините конечно, но так было сказано в книжке(не могу линк найти на букс.пхпклуб.ру) бело-синей или фиолетовой. Или я путаю с DELAYED & etc. постфиксами
 
Сверху