W bibliotece MySQLi w PHP właściwość insert_id (np. $mysqli->insert_id) informuje o identyfikatorze wygenerowanym podczas ostatniej operacji INSERT wykonanej na danym obiekcie połączenia. W praktyce dotyczy to najczęściej kolumny klucza głównego ustawionej jako AUTO_INCREMENT. Dzięki temu po dodaniu rekordu można od razu znać jego ID i użyć go w dalszych operacjach (np. do zapisania danych w tabeli powiązanej).
Odpowiedź "otrzymania id ostatnio wstawionego wiersza." jest poprawna, bo dokładnie to jest celem insert_id: odczyt wartości ID nadanej przez bazę dla ostatniego INSERT w tym połączeniu.
Pozostałe propozycje są niepoprawne:
- "otrzymania kodu błędu..." dotyczy innych pól/właściwości MySQLi (np. informacji o błędzie), a nie insert_id. Mieszanie tych pojęć to częsty błąd, bo oba odnoszą się do "wyniku ostatniej operacji", ale zwracają zupełnie inne dane.
- "pobrania najwyższego indeksu bazy..." jest błędnym podejściem projektowym: aplikacja nie powinna wyznaczać kolejnego ID przez inkrementację maksimum, bo grozi to kolizjami przy równoległych zapisach. Od tego jest mechanizm AUTO_INCREMENT po stronie serwera.
- "pobrania pierwszego wolnego indeksu..." również nie opisuje insert_id. MySQL nie gwarantuje, że aplikacja ma szukać "dziur" w numeracji; ID może mieć przerwy (np. po usunięciach), a insert_id nie służy do ich wypełniania.
Wskazówka egzaminacyjna: zapamiętaj skojarzenie: insert_id = ID po INSERT. Gdy pytanie dotyczy błędów, szukaj pojęć typu "errno", "error", "error_list", a gdy dotyczy nowego rekordu – "insert_id" lub funkcji pokrewnej zwracającej ostatnie ID.