Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы по PHP » Вывести последний ID из таблицы MySQL, чтоб он не пересекался с другими

Вывести последний ID из таблицы MySQL, чтоб он не пересекался с другими


     Общие вопросы по PHP, MySQL    3021

вопрос
Привет. Извините за немного "нубский" вопрос. Но мне хотелось бы вывести последний ID из таблицы MySQL, чтоб он никак не мог пересечься с другими, при очень высокой посещаемости сайта.

Например я делаю так:

$maximal_id = $db->super_query("SELECT max(id)+1 as maximalid FROM ".PREFIX."_table");
$maxid = $maximal_id['maximalid'];

//Запрос на вставку в БД со значением ID=$maxid


Но при высокой посещаемости этот код может выдать одинаковые значения разным пользователям. Подскажите пожалуйста аналог этому коду, чтоб всё было нормально :) В яндексе пробовал поискать, а там ерунда всякая. Вся надежда на вас :)

Ответил: D0Gmatist


Ни как ... ДО нельзя ... ПОСЛЕ можно

3 комментария

vk_159926832
Юзер

vk_159926832 - -

D0Gmatist, ну а как тогда? Вот такой код есть, он может подойти?

$maximalid = $db->super_query("SELECT max(LAST_INSERT_ID(id))+1 as maximalid FROM table");
$max_id = $maximalid['maximalid'];


Сказали, мол LAST_INSERT_ID привязывается к запросу, что совпадений может не быть, это правда?

D0Gmatist
Юзер

D0Gmatist - -

Это если 1-н доступ к БД
Если есть асинхронный доступ то ..
При одновременном доступе 2-х и более пользователей, результаты потребностей будут разнится...
не могу понять для чего вам это?

vk_159926832
Юзер

vk_159926832 - -

Определить максимальный ID и с этим значением записать новую строку в таблицу. Я же писал.

Похожие вопросы

наверх