• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Uzyskanie ID właśnie dodanego rekordu

42 Warsaw Coding Academy
0 głosów
1,788 wizyt
pytanie zadane 17 stycznia 2018 w SQL, bazy danych przez Bartess Gaduła (3,630 p.)
zamknięte 17 stycznia 2018 przez Bartess
Cześć.
Taki problem: Dodaję do tabeli rekord, załóżmy: Imię, nazwisko, adres, płeć, wiek. Jeżeli chcę uzyskać id tego rekordu, to czy jedynym prostym sposobem jest zaraz po INSERT zrobienie SELECT z tym samym zestawem danych?
komentarz zamknięcia: Rozwiązany

1 odpowiedź

+2 głosów
odpowiedź 17 stycznia 2018 przez Tomasz90 Nałogowiec (25,140 p.)
wybrane 17 stycznia 2018 przez Bartess
 
Najlepsza
Zależy od bazy np. MySQL ma taką funkcję do tego LAST_INSERT_ID() a SQL Server ma klauzule OUTPUT i robisz to w tym samym poleceniu co INSERT
komentarz 17 stycznia 2018 przez Bartess Gaduła (3,630 p.)

Dzięki za nakierowanie! Znalazłem, czego potrzebowałem :-).
A znalazłem to:

stmt = $db->prepare("...");
$stmt->execute();
$id = $db->lastInsertId();

 

3
komentarz 17 stycznia 2018 przez Tomek Sochacki Ekspert (227,490 p.)
Uważaj tylko na pewien niuans, a mianowicie jeśli dodasz w jednym INSERT kilka rekordów to zwrotne LAST_INSERT_ID() może dotyczyć tylko pierwszego z wprowadzonych rekodrów, a nie ostatniego. Dlatego jeśli korzystasz z tej funkcji to warto się zabezpieczyć i zawsze ładować rekordy pojedynczo.
komentarz 17 stycznia 2018 przez Tomasz90 Nałogowiec (25,140 p.)
no tak przy bulk insert to nie działa, mogłem o tym napisać, słuszna uwaga
komentarz 17 stycznia 2018 przez Bartess Gaduła (3,630 p.)

@Tomek Sochacki, masz rację, moje niedoprecyzowanie w pytaniu jest, choć z treści można to wywnioskować (...) Dodaję do tabeli rekord (...), że chodzi o dodanie jednego rekordu. 

1
komentarz 18 stycznia 2018 przez Tomek Sochacki Ekspert (227,490 p.)
Tak wiem, że pytałeś o przypadek pojedynczego rekordu. Napisałem tak bardziej informacyjnie tylko aby pamiętać o tym drobnym niuansie jeśli naszłaby człowieka ochota dodać od razu kilka rekordów... :) Można się czasem zdziwić, tym bardziej, że może to być trudne do wykrycia :)

Podobne pytania

0 głosów
2 odpowiedzi 693 wizyt
pytanie zadane 21 czerwca 2022 w PHP przez jakubjordanek Obywatel (1,340 p.)
0 głosów
4 odpowiedzi 912 wizyt
pytanie zadane 27 czerwca 2016 w SQL, bazy danych przez Bartess Gaduła (3,630 p.)
0 głosów
3 odpowiedzi 2,397 wizyt

93,383 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,744 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...