2009-11-05 6 views
6

Wie kann ich die eingefügte ID erhalten, wenn ich einen Datensatz auf diese Weise mit cockephp einfügen $ This-> Abfrage ("Einfügen in [Tabellenname] ([Spaltenname]) Werte ([colvalue]);

+3

Warum verwenden Sie nicht die integrierte save() - Methode? – kouak

Antwort

3

Angenommen, Sie MySQL verwenden könnten Sie die folgende Abfrage ausführen, nachdem Sie den Einsatz tat

$array_with_id = $this->query('select last_insert_id() as id;');

Aber wie kouak erwähnt, ist die übliche Art und Weise zum einfügen von Daten ist zu Verwenden Sie die Methode save(). Wenn Sie diese Methode verwenden, ist die ID des eingefügten Datensatzes dann automatisch in der $ id-Eigenschaft verfügbar Für das jeweilige Modell.

3

Wenn Sie die Verwendung speichern() -Methode können Sie die ID wie so erhalten:

$this->Model->save($data); 
$id = $this->Model->id; 
2

Cake Modellklasse hat eine Funktion, die die letzte Eingabe-ID bekommt:

$this->Model->getLastInsertID() 

Linie 2584 in {Projekt-Ordner} /cake/libs/model/model.php

0

Bitte diese Methode verwenden, um in cakephp2 letzte Insert-ID erhalten

$data['yourModelName']['yourTableField'] = POstdata 
$data['yourModelName']['yourTableField'] = time(); 
$data['yourModelName']['yourTableField'] = 1; 
$data['yourModelName']['yourTableField'] = time(); 

$this->yourModelName->create(); 
$this->yourModelName->save($data,false); 
$sessionInserted_id = $this->yourModelName->getInsertID(); 
Verwandte Themen