Ich verwende Abfrage in CakePHP
%Vor%Wie bekomme ich die letzte ID dieser Abfrage in cakephp? Bitte um Rat.
In fast allen Fällen sollten Sie die Modellmethode verwenden, um Ihre Datenbank abzufragen.
Model::query()
existiert, um komplexe Abfragen auszuführen, die komplexer sind als die Verwendung der Modellmethoden oder in einigen Fällen, wenn Sie nicht die Wahl haben.
In Ihrem Fall ist das sehr nützlich, weil Model::save()
im Framework eine Callback-Funktion ausführt, die das Attribut Model::id
für Sie festlegt.
So erlauben Sie es, es sofort zurückzubekommen:
%Vor%VORSICHT!
Auf der anderen Seite und wie von anderen Antworten gesagt, gibt es die folgende Methode:
%Vor%Aber Sie müssen mit dieser Methode sehr vorsichtig sein und Sie sollten es nicht in diesem Fall verwenden weil es die LETZTE eingefügt , aber NICHT die letzte, die Sie gerade in die vorherige Code-Anweisung eingefügt haben!
Wenn ein Benutzer (während einer anderen gleichzeitigen Anforderung auf dem Server) Daten zwischen
save()
undgetLastInsertId()
speichert, gibt er den Wert dieses zweiten Benutzers zurück!THUS, die folgenden Antworten sind BAD Antworten für diesen Anwendungsfall :
Sie können auch die Modellfunktion verwenden, aber unter dem Code wird die zuletzt eingefügte ID des Modells mit dem angegebenen Modellnamen zurückgegeben. In diesem Beispiel werden die Menümodelldaten zurückgegeben
%Vor%Nachfolgend finden Sie die Optionen:
%Vor%ODER
%Vor%ODER
%Vor%Hier können Sie die Registrierung durch Ihren Modellnamen ersetzen.
Hinweis: Diese Funktion funktioniert nicht, wenn Sie die Einfüge-Abfrage manuell ausführen
Danke
Tags und Links cakephp