Jak zjistit id záznamu hned po jeho vložení?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kloban
Člen | 123
+
0
-

Ahoj,
potřeboval bych po vložení nového záznamu do databáze hned vědět jeho id (které je auto increment).
Provede se tedy toto:

$this->database->table('jidelniListek')->insert(array(
    'nazev' => $values->nazev,
    'podnazev' => $values->podnazev,
    'popis' => $values->popis,
    'cena' => $values->cena,
    'mnozstvi' => $values->mnozstvi,
));

A zde bych hned potřeboval vědět id záznamu.
Jak na to?
Díky za rady.

Michal Vyšinský
Člen | 608
+
0
-

Aho, takto by to mělo fungovat:

$row = $this->database->table('jidelniListek')->insert(array(
    'nazev' => $values->nazev,
    'podnazev' => $values->podnazev,
    'popis' => $values->popis,
    'cena' => $values->cena,
    'mnozstvi' => $values->mnozstvi,
));
$id = $row->id; //id je název sloupce pro id :)

Edit: nebo $this->database->getInsertId()

Editoval Michal Vyšinský (8. 5. 2014 14:22)

ViPEr*CZ*
Člen | 817
+
0
-

viz lastInsertId();

Michal Vyšinský
Člen | 608
+
0
-

https://api.nette.org/…ion.php.html#262 to je právě deprecated

Editoval Michal Vyšinský (8. 5. 2014 15:15)

rixi
Člen | 109
+
0
-

Michal Vyšinský napsal(a):

Aho, takto by to mělo fungovat:

$row = $this->database->table('jidelniListek')->insert(array(
    'nazev' => $values->nazev,
    'podnazev' => $values->podnazev,
    'popis' => $values->popis,
    'cena' => $values->cena,
    'mnozstvi' => $values->mnozstvi,
));
$id = $row->id; //id je název sloupce pro id :)

Edit: nebo $this->database->getInsertId()

$row alebo $row->id.

Pri tabulkach bez autoincrementu je chovanie odlisne, tam sa to nedavno menilo, myslim ze to vracia NULL resp FALSE.

greeny
Člen | 405
+
0
-

Michal Vyšinský napsal(a):

https://api.nette.org/…ion.php.html#262 to je právě deprecated

https://api.nette.org/…ion.php.html#108 ale tohle ne :)

ViPEr*CZ*
Člen | 817
+
0
-

Michal Vyšinský napsal(a):

https://api.nette.org/…ion.php.html#262 to je právě deprecated

A jak mám vědět jakou verzi používáte :-)