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.

Keine Kommentare:

Kommentar veröffentlichen