Warum gibt mysqli_insert_id () immer 0 zurück?

8

Ich habe den folgenden Code. Die mysqli_insert_id () (in diesem Fall "$ last_row"), die die letzte Zeile der Tabelle zurückgeben soll, gibt immer 0 zurück. Warum ist das so?

%Vor%     
Mumbo Jumbo 11.03.2013, 06:12
quelle

4 Antworten

17

mysqli_insert_id gibt nicht die ID der letzten Zeile der Tabelle zurück. Aus den Dokumenten , es:

  

... gibt die ID zurück, die von einer Abfrage für eine Tabelle mit einer Spalte mit dem AUTO_INCREMENT-Attribut generiert wurde. Wenn die letzte Abfrage keine INSERT - oder UPDATE -Anweisung war oder die geänderte Tabelle keine Spalte mit dem AUTO_INCREMENT -Attribut hat, gibt diese Funktion null zurück .

(Mein Schwerpunkt)

Das heißt, wenn Sie es sofort nach eine Einfügung ausführen würden, die automatisch eine ID erzeugt, würde es auf der gleichen Verbindung, mit der Sie die Einfügung gemacht haben, die für diese Einfügung generierte ID zurückgeben.

Dies wird durch das Beispiel in den oben verlinkten Dokumenten veranschaulicht:

%Vor%     
T.J. Crowder 11.03.2013, 06:14
quelle
11

Um das Ergebnis zu erhalten, sollten Sie das

platzieren %Vor%

nach Ihrer INSERT-Abfrage

    
Sudip Pal 11.03.2013 06:17
quelle
0

Für andere Leute, die hierher kommen, haben Sie vielleicht INSERT IGNORE INTO ausprobiert und Sie haben einen UNIQUE -Wert, der bereits eingefügt wurde. In diesem Fall ist diese ID gleich Null.

Sie erhalten auch "Null", wenn MySQL keine Verbindungen mehr hat. Ich bin kein Experte für dauerhafte Verbindungen, aber das könnte jemandem helfen?

  

Wie Sie wahrscheinlich wissen, wird PHP "mysql" extension persistent unterstützt   Verbindungen, aber sie wurden in der neuen "mysqli" -Erweiterung deaktiviert   - Peter Zaitsev

    
PJ Brunet 02.06.2015 01:57
quelle
0

Auch wenn es einen Wert zurückgibt, ist es ein String-Wert, NICHT ein Integer, wie er im PHP-Handbuch beschrieben wird. Es bedeutet, dass es ein Doppelzitat hat. Wenn Sie es an ein json-Ergebnis übergeben möchten, müssen Sie es mit (int)

in Ganzzahl auflösen     
Shusen Yi 21.03.2018 20:50
quelle

Tags und Links