9 Stimmen

Wie funktioniert lastInsertId() für Tabellen ohne automatisch inkrementierte Felder?

Wie funktioniert lastInsertId() für Tabellen, die kein automatisch incrementiertes Feld haben? Was ist mit Tabellen, bei denen der Primärschlüssel aus 2 Feldern besteht?

(Ich arbeite mit MySQL)

2voto

Explosion Pills Punkte 182627

In beiden oben genannten Fällen wird es 0 zurückgeben.

Bei Verwendung einer auto_increment-Spalte wird es auch die zuletzt eingefügte ID zurückgeben, auch wenn sie angegeben wurde (d. h. der automatische Inkrement wurde nicht verwendet).

Das bedeutet, dass Sie lastInsertId nur verwenden sollten, wenn Sie auto_increment verwenden. Andernfalls macht es keinen Sinn, es zu verwenden, da Sie die Schlüssel sowieso im Voraus kennen müssten...

1voto

Dutchie432 Punkte 28344

Ich denke nicht, dass es dies tut, da es eine Funktion ist, die speziell dafür entwickelt wurde, den Wert eines AUTO_INCREMENT-Feldes abzurufen.

http://php.net/manual/en/function.mysql-insert-id.php

mysql_insert_id

Ruft die ID ab, die für eine AUTO_INCREMENT-Spalte durch die vorherige Abfrage (normalerweise INSERT) generiert wurde.

Dies ist leicht genug zu testen - haben Sie es versucht, um zu sehen, was passiert?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X