Posts mit dem Label Insertid werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Insertid werden angezeigt. Alle Posts anzeigen

Dienstag, 21. Januar 2014

Welche ID wurde beim TableGateway automatisch eingefügt?

Wenn man mit einer Datenbank - Tabelle arbeitet die mit autoincrement arbeitet, möchte man oft wissen welche ID zu letzt eingefügt wurde.

Sofern man das TableGateway vom Zendframework2 benutzt genügt der Befehl $this->tableGateway->lastInsertValue; direkt nach dem ausführen des Datenbankbefehls.

Die Methode saveAlbum wie folgt abgeändert liefert dann immer die ID zurück:

public function saveAlbum(Album $album)
{
$data = array(
'artist' => $album->artist,
'title' => $album->title,
);
$id = (int)$album->id;
if ($id == 0) {
$this->tableGateway->insert($data);

$insertid = $this->tableGateway->lastInsertValue; //Autoincrement - wert abrufen
return $insertid; //und zurückliefern
} else {
if ($this->getAlbum($id)) {

$this->tableGateway->update($data, array('id' => $id));
} else {
throw new \Exception('Form id does not exist');
}
}
}


Vermutlich würde es return $this->tableGateway->lastInsertValue; auch tun.