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.