Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dlaczego LAST_INSERT_ID() nie dziala ?
Forum PHP.pl > Forum > Bazy danych > MySQL
luckyluc
Od kilku dni nie moge poradzic sobie z funkcja last_insert_id(). Ostatnio sprawdzilem w phpmyadmin i okazuje sie, ze przy ponizszym zapytaniu wyswietlaja sie wszystkie rekordy, a powinien tylko jeden. Ostatni! Dlaczego ?


SELECT * FROM dokumenty WHERE dokumenty_id=last_insert_id(dokumenty_id)
wijet
Powinno być tak
  1. SELECT * FROM dokumenty WHERE dokumenty_id = LAST_INSERT_ID()

wyświetli dane dla ostatniego dodanego id.
luckyluc
Cytat(wijet @ 11.11.2006, 16:33:05 ) *
Powinno być tak
  1. SELECT * FROM dokumenty WHERE dokumenty_id = LAST_INSERT_ID()

wyświetli dane dla ostatniego dodanego id.



Ehh, takiego rozwiazania tez probowalem. Niestety pojawia sie komunikat: MySQL zwrocil pusty wynik (zero rekordow). Nie rozumiem dlaczego. Moze ktos wyjasnic jak korzystac z tej funkcji, bo w manualu jest bardzo skromny opis.
wijet
A czy tabela ma pole z atrybutem auto_increment?, funkcja LAST_INSERT_ID() tego wymaga
najlepiej pokaz zapytania insert i select.
PiotrLegnica
LAST_INSERT_ID() zwraca ostatnią wartość auto_increment z danej sesji (połączenia). Jeśli chcesz wybrać ostatni rekord to możesz zrobić
  1. SELECT * FROM dokumenty ORDER BY dokumenty_id DESC LIMIT 1

albo
  1. SELECT * FROM dokumenty WHERE dokumenty_id = MAX(dokumenty_id)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.