Jak pouzit lastInsertId()?
- Šaman
- Člen | 2666
riski napsal(a):
Verze nette v2.0.10, id bigint(20) Auto Increment, takze urcite ma. Myslel jsem ze bych pouzil neco jako $row = $db->query(‚insert‘);
$row->lastinsertid(); ale nejde.
Když už máš $row
, tak použij $row->id
. Já
lastInsertId()
nepoužívám vůbec, chápu to jako interní fci
databázové vrstvy.
- riski
- Člen | 53
Nene, to jsem spatne napsal, nemam $row… proste vkladam do db a potrebuji zjistit to posledni vlozene id.
Šaman napsal(a):
riski napsal(a):
Verze nette v2.0.10, id bigint(20) Auto Increment, takze urcite ma. Myslel jsem ze bych pouzil neco jako $row = $db->query(‚insert‘);
$row->lastinsertid(); ale nejde.Když už máš
$row
, tak použij$row->id
. JálastInsertId()
nepoužívám vůbec, chápu to jako interní fci databázové vrstvy.
- Šaman
- Člen | 2666
Koukal jsem na implementaci a NDatabase jen obaluje PDO objekt, který tu getLastInsertId() odsahuje, Nette tuto metodu neimplementuje. Takže nevím, kde by mohla být chyba.
Ale zkus to zapsat takhle, dostaneš $row a bude se ti s tím líp pracovat.
<?php
$row = $database->getTable('FooTable')->insert(array $data);
$id = $row->id;
?>
- riski
- Člen | 53
Dekuji, takto to funguje. ;)
Šaman napsal(a):
Koukal jsem na implementaci a NDatabase jen obaluje PDO objekt, který tu getLastInsertId() odsahuje, Nette tuto metodu neimplementuje. Takže nevím, kde by mohla být chyba.
Ale zkus to zapsat takhle, dostaneš $row a bude se ti s tím líp pracovat.
<?php $row = $database->getTable('FooTable')->insert(array $data); $id = $row->id; ?>