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

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


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

вопрос
Привет. Извините за немного "нубский" вопрос. Но мне хотелось бы вывести последний 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 - 11 июля 2014 21:42 -

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 - 11 июля 2014 21:52 -

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

vk_159926832
Юзер

vk_159926832 - 12 июля 2014 07:43 -

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

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх