getInsertId() vrací nulu, přestože insert ID vrátí správně

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

Narazil jsem na podivné chování getInsertId() viz. příklad níže. Čím to může být?

$this->db->table('mytable')->insert(...);
$id = $this->db->getInsertId();

echo $id; // 0


$id = $this->db->table('mytable')->insert(...)->id;

echo $id; // 1, 2, 3

Editoval josef.sabl (12. 5. 2014 19:37)

Šaman
Člen | 2666
+
0
-

Máš ten sloupec autoinkrement?

josef.sabl
Člen | 153
+
0
-

Mám. Řádky mají IDčka v pořádku.

kralik
Člen | 230
+
0
-

Ahoj
taky jsem na to narazil.
Avšak mě to maká takto.

<?php
$this->connection->table('files')->insert($val);
$res = $this->connection->getInsertId();
// vrací $res = 0

$res = $this->connection->table('files')->insert($val)->id;
// vraci $res = 9   např., tedy ID vloženého řádku

?>
s4muel
Člen | 92
+
0
-

mysql? ako pisal saman, skontroluj, ci mas stlpec s id (alebo v principe nejaky iny v tej tabulke, ale to je nepodstatne) nastaveny ako auto-increment.
a nemas to zabalene v nejakej transakcii?