Naposledy vložené ID do databáze

Martin Hanzl
Člen | 6
+
0
-

Dobrý den,
jsem naprotsý začátečník a v Nette se učím dělat pár dní. Chtěl bych se zeptat, jak dostanu ID, které jsem naposledy vložil do databáze? Zkoušel jsem snad už všechno a nic mi nefunguje.
Děkuji za opdověď

$lastID = $this->database->getInsertId();

Editoval Martin Hanzl (19. 3. 2020 12:50)

neznamy_uzivatel
Člen | 115
+
0
-

Pokud máš v db např. autoincrement ‚id‘, tak by mohlo fungovat

$row = $this->database->insert($data);
$id = $row->id;

btw. taky s tím mám problémy. Přičítám to staršímu nette (někde 2.3), takže zatím neřeším, jelikož přepisuju starší pololegacy aplikaci do nového nette.. Každopádně jsem vypozoroval, že někdy funguje $database->getInsertId(); a jindy $activerow->id;
Mám takový pocit, že to záleží i na verzi mysql a nastavení SQL_MODEm jinak, nežm je default, jenže opět jsou to staré verze, 5.4 a 5.6, ještě mám v plánu to zkoumat po hardcore refaktoru :)

Martin Hanzl
Člen | 6
+
0
-

Jo super funguje to výborně. Děkuji.

GEpic
Člen | 562
+
0
-

neznamy_uzivatel napsal(a):

Pokud máš v db např. autoincrement ‚id‘, tak by mohlo fungovat

$row = $this->database->insert($data);
$id = $row->id;

btw. taky s tím mám problémy. Přičítám to staršímu nette (někde 2.3), takže zatím neřeším, jelikož přepisuju starší pololegacy aplikaci do nového nette.. Každopádně jsem vypozoroval, že někdy funguje $database->getInsertId(); a jindy $activerow->id;
Mám takový pocit, že to záleží i na verzi mysql a nastavení SQL_MODEm jinak, nežm je default, jenže opět jsou to staré verze, 5.4 a 5.6, ještě mám v plánu to zkoumat po hardcore refaktoru :)

Já to tvým popsaným způsobem používám už léta od starých Nette, SQL_MODE nezměněn a vše funguje dle očekávání, pokud tě to uklidní. :D