Делаю сложный запрос, требуется справка, для общего багажа знаний)
Есть метод lastInsertId, который возвращает число, которое MySQL назначил последней добавленной записи с помощью автоинкремента. Т.е. возвращает идентификатор только что добавленной записи (конечно же, если поле с AUTO_INCREMENT существует).
Такой вопрос:
Если добавляются НЕСКОЛЬКО записей НЕСКОЛЬКИМИ пользователями (представим) в одно и то же время, как можно быть уверенным в том, что lastInsrtId вернёт мне именно тот id записи, КОТОРУЮ ДОБАВИЛ Я, а не кто-то.
Объясните пожалуйста принцип работы данного метода, если это имеет место быть. На официальном сайт PHP прочитал информацию, что имеется параметр "name". Является ли этот параметр указанием того, какую строку добавил именно я, а не кто иной, Или зачем он именно нужен?
Информацию об этом методе нахожу только на английском языке. Плохо его знаю. Заранее извиняюсь, если что-то не так.
Вот к примеру код:
PHP:
скопировать код в буфер обмена
try $sql = 'INSERT INTO people SET firstname = :firstname, lastname = :lastname'; $s = $pdo->prepare($sql); $s->bindValue(':firstname', $_POST['firstname']); $s->bindValue(':lastname', $_POST['lastname']); $s->execute(); } catch (Exception $er) { $error = 'Ошибка' . $er->getMessage(); include 'error.php'; } $result = $pdo->lastInsertId();
Нужно ли тут указывать, что я хочу получить id именно своей добавленной строки в БД, а не чьей-то, кто одновременно может внести изменение вместе со мной?(Отредактировано автором: 29 Марта, 2015 - 21:25:28)
|