| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > mysql insert_id одновременное обращение |
| Автор: Sanchezzz 7.5.2011, 15:14 | ||
| Добрый день тут делемка у меня функция из класса forums $id_topic = $this->db->insert_id; Если будут пользователи одновременно создавать тему на форуме я конкректно получу id последнего инсерта срузу после выполнения запроса, КОД ниже. ? $this->db это обертка mysql или mysqli
|
| Автор: patap 7.5.2011, 15:39 | ||||||
| для меня этот вопрос тоже какбы загадка. Но вот порылся в манах, и вот что я обнаружил: (думаю я правильно все понял) тут написано http://php.net/manual/en/function.mysql-insert-id.php
следовательно вероятность получения не того ид есть ) здесь нашел следующее http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html
как я понял, для того чтобы однозначно получить именно последний ид (автоинкримент) нужно после инсерт запроса выполнить следующий запрос
Добавлено через 4 минуты и 22 секунды или блин я напутал чегго-то...кто что думает |
| Автор: Sanchezzz 7.5.2011, 16:04 |
| SELECT LAST_INSERT_ID(); вроде уже выполняет автоматом PHP mysqli или равно сильно функции mysql_insert_id |
| Автор: patap 7.5.2011, 16:07 |
| Sanchezzz, о тож я тоже так потом подумал потом. Думаю: что тогда возвращает mysql_insert_id, как не LAST_INSERT_ID. и в чем тогда разница... |
| Автор: Sanchezzz 7.5.2011, 18:29 |
| пока оставлю этот вариант проверю как не будь нужно посмотреть как другие форумы решили эту проблему . точнее возможность наличии проблемы. если кто с толкнулся с похожей проблемой реально отпишитесь в этом топики очень интересно ) |
| Автор: Muerto 7.5.2011, 21:02 |
| Не могу понять о чем в топике речь идет... SELECT LAST_INSERT_ID(); Выдает последний запрос который ВЫ сделали. Т.е. я делаю insert into ... И если после этого SELECT LAST_INSERT_ID(); , то ничего другого вы не получите как последний Id Если бы эта функция работала глобально на всю базу - от неё бы толку почти ноль было... Так что пользуйтесь спокойно, а если какие проблемы, то виновата не функция... --- Т.е. автор - если ваш пользователь создал тему, пусть параллельно создают их ещё миллион - разницы нету! Это именно для текущего выполнения скрипта работает |
| Автор: Nigel 7.5.2011, 21:24 |
| У каждого процесса свое значение, возвращаемое функцией mysql_insert_id. Тема давно обсуждалась уже, в следующий раз пользуйтесь, пожалуйста, поиском по форуму. |