РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
239 of 258 menu

Метод lastInsertId

Метод lastInsertId класса Connection возвращает идентификатор последней записи, вставленной через это соединение. Он полезен после команды INSERT, когда нужно узнать сгенерированное значение автоинкрементного поля (например, первичного ключа).

Метод не принимает обязательных параметров. Первым необязательным параметром можно передать имя последовательности (sequence), что актуально для некоторых СУБД, например PostgreSQL.

Синтаксис

public function lastInsertId(?string $name = null): string|int

Пример

Давайте вставим запись в таблицу и получим её ID:

<?php namespace AppController; use DoctrineDBALConnection; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(Connection $connection): Response { $connection->executeStatement( "INSERT INTO article (title, text) VALUES ('abcde', 'article text')" ); $id = $connection->lastInsertId(); return new Response((string) $id); } } ?>

Результат выполнения кода:

1

Пример

Давайте вставим несколько записей и получим ID последней:

<?php namespace AppController; use DoctrineDBALConnection; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(Connection $connection): Response { $connection->executeStatement( "INSERT INTO article (title, text) VALUES ('abcde', 'first')" ); $connection->executeStatement( "INSERT INTO article (title, text) VALUES ('user', 'second')" ); $res = $connection->lastInsertId(); return new Response((string) $res); } } ?>

Результат выполнения кода:

2

Пример

Давайте получим ID вставленной записи и используем его для выборки:

<?php namespace AppController; use DoctrineDBALConnection; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(Connection $connection): Response { $connection->executeStatement( "INSERT INTO article (title, text) VALUES ('hello', 'abcde')" ); $id = $connection->lastInsertId(); $article = $connection->fetchAssociative( 'SELECT * FROM article WHERE id = ?', [$id] ); return new Response($article['title']); } } ?>

Результат выполнения кода:

hello

Смотрите также

  • класс Connection,
    который управляет соединением с базой данных
  • метод executeStatement,
    который выполняет INSERT, UPDATE и DELETE запросы
  • метод insert,
    который вставляет запись в таблицу
  • метод fetchAssociative,
    который возвращает одну строку как ассоциативный массив
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить