Naposledy vložené ID do databáze
- Martin Hanzl
- Člen | 6
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
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 :)
- GEpic
- Člen | 566
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