Jak pouzit lastInsertId()?

- Šaman
- Člen | 2668
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 | 2668
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; ?>