Forum und email
mysql_insert_id

mysql_insert_id

(PHP 3, PHP 4, PHP 5)

mysql_insert_id --  Podaje numer ID wygenerowany podczas ostatniej operacji INSERT

Opis

int mysql_insert_id ( [resource identyfikator_połączenia] )

mysql_insert_id() zwraca ID wygenerowane dla pola z własnością AUTO_INCREMENT. Funkcja zwróci ID wygenerowane automatycznie przez ostatnią operację INSERT używającą podanego identyfikatora_połączenia. Jeżeli identyfikator_połączenia nie został podany, wykorzystywane jest ostatnio otwarte połączenie.

mysql_insert_id() zwróci 0 jeśli ostatnie zapytanie nie generowało wartości AUTO_INCREMENT. Jeśli chcesz przechować zwrócony przez tę funkcję wynik, upewnij się, że wywołujesz ją zaraz po zapytaniu generującym nową wartość.

Notatka: Funkcja MySQL LAST_INSERT_ID() zawsze zawiera ostatnio wygenerowane ID, a zwracana wartośc nie jest czyszczona pomiędzy kolejnymi zapytaniami.

Ostrzeżenie

mysql_insert_id() konwertuje typ wartości otrzymanej od natywnej funkcji MySQL C API mysql_insert_id() na typ long (czyli int w PHP). Jeśli kolumna AUTO_INCREMENT jest typu BIGINT, wartość zwracana przez mysql_insert_id() będzie niepoprawna. Należy w zapytaniu SQL użyć wewnętrznej funkcji MySQL LAST_INSERT_ID().

Przykład 1. Przykład użycia mysql_insert_id

<?php
    mysql_connect
('localhost', 'uzytkownik', 'haslo') or
        die(
'Nie można się połączyć');
    
mysql_select_db('baza');

    
mysql_query("INSERT INTO mytable (product) values ('kossu')");
    
printf ("Ostatnio dodany rekord ma id %d\n", mysql_insert_id());
?>

Patrz także: mysql_query().