mysqli::$insert_id / mysqli_insert_id() w PHP

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Do czego służy mysqli::$insert_id?

insert_id to pole obiektu MySQLi w PHP, które zwraca identyfikator ostatnio wstawionego rekordu wygenerowany przez kolumnę z atrybutem AUTO_INCREMENT.

Najczęściej używa się go po wykonaniu zapytania INSERT, gdy trzeba od razu znać ID nowo dodanego wiersza, np. aby dodać powiązane dane do innej tabeli.

Najważniejsze cechy

  • zwraca ID ostatniego wiersza dodanego w ramach danego połączenia z bazą,
  • działa tylko wtedy, gdy tabela ma kolumnę AUTO_INCREMENT,
  • po zapytaniu, które nie wygenerowało ID, może zwrócić 0,
  • nie służy do pobierania błędów ani „pierwszego wolnego indeksu”,
  • nie należy zastępować go zapytaniem typu SELECT MAX(id), bo przy wielu użytkownikach może to dać błędny wynik.

Przykład obiektowy

$polaczenie = new mysqli('localhost', 'root', '', 'sklep');

$polaczenie->query("INSERT INTO klienci (imie, nazwisko) VALUES ('Jan', 'Kowalski')");

$id = $polaczenie->insert_id;
echo 'Dodano klienta o ID: ' . $id;

Przykład proceduralny

mysqli_query($polaczenie, "INSERT INTO klienci (imie) VALUES ('Anna')");
$id = mysqli_insert_id($polaczenie);

W kontekście egzaminu

Jeżeli pytanie dotyczy pola insert_id w bibliotece MySQLi, poprawne skojarzenie to: ID ostatnio wstawionego wiersza. Nie jest to kod błędu ani mechanizm ręcznego wyznaczania kolejnego indeksu.