Loading...

Лара (16 авг 2023, в 14:45)
Это не тоже самое, ты берешь из всей таблицы записи, а в случае с функцией, тебе вернется ид самой записи и не важно, были записи или нет
https://ru.stackoverflow.com/questions/453648/Какой-id-верн...nsertid-из-pdo
Ты не только про блокировку спрашивал
Я ответила оптимальный вариант для получения ид
Зачем блокировать всю таблицу?
Вот это уже интересно. Правда, в доках этот нюанс как-то туманно описан что я даже не знаю. Теперь буду думать, что выбрать. Тут чел говорит что при блокировке (LOCK TABLES) и последующей смерти скрипта от PHP Fatal error раньше запроса с UNLOCK таблица блокируется навсегда, пока все-таки не сделать этот UNLOCK, а в доках написано что UNLOCK делается автоматически при закрытии соединения, а конец скрипта - это ж и есть закрытие соединения? Хз короче.
________
посл. ред. 16.08.2023 в 15:42; всего 1 раз(а); by Something
А почему бы не забрать id до того как задержки начнут быть?🤔
Scammer (16 авг 2023, в 16:29)
А почему бы не забрать id до того как задержки начнут быть?🤔
Даже если забирать id сразу, всеравно есть шанс что другой клиент влезет, при нормальной посещалке
Вобшем пока на распутье, нужны еще мнения профессионалов
Something (16 авг 2023, в 18:47)
Вобшем пока на распутье, нужны еще мнения профессионалов
Если и влезет, у тебя в id бд AI, id будет в любом случае уникальный
Лара (16 авг 2023, в 18:52)
Если и влезет, у тебя в id бд AI, id будет в любом случае уникальный
Это понятно. Дело в том что мне нужна запись, которая добавлена именно этим клиентом, а не последняя
Лучший ответ
Something (16 авг 2023, в 18:56)
Это понятно. Дело в том что мне нужна запись, которая добавлена именно этим клиентом, а не последняя
lastInsertId Это и делает, от твоего текущего объекта pdo
Лара (16 авг 2023, в 18:59)
lastInsertId Это и делает, от твоего текущего объекта pdo
Да, походу его и придется заюзать
Something (16 авг 2023, в 18:56)
Это понятно. Дело в том что мне нужна запись, которая добавлена именно этим клиентом, а не последняя
Ну Лара сказал верно тебе
напиши обёртку, которая реализует паттерн Active Record, суть паттерна в том, что мы используем модели, содержащие свойства, соответствующие столбцам таблиц, при запросах из этих моделей создаются объекты содержащие данные таблиц, совершая запрос INSERT мы создаём объект, в котором всё уже заполнено, выполнять запрос SELECT уже не требуется

работает это примерно так

php
class User {
public $id;
public $login;
}

$user = new User(); // создали объект модели User, это и есть наша новая строка
var_dump($user); // object User: public $id = null, public $login = null


$user->save(); // сохранили, это запрос INSERT, потому что свойство id = null, теперь id = 1
var_dump($user); // object User: public $id = 1, public $login = null

$user->login = 'Test';
$user->save(); // если сделаем так, то это запрос UPDATE, так как свойство id не null, оно 1, то есть такая запись в БД есть
var_dump($user); // object User: public $id = 1, public $login = Test


а так-то #2 - lastInsertId
________
посл. ред. 17.08.2023 в 12:26; всего 3 раз(а); by Вилы Выкидные
Онлайн: 3
Время:
Gen. 0.0883
(c) Bym.Guru 2010-2025