English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Die Funktion mysqli_insert_id() gibt die selbstinkrementierende ID zurück, die durch die letzte INSERT-Anweisung erzeugt wurde
Wenn Sie eine Tabelle mit der AUTO_INCREMENT-Spaltenattribute haben und wenn Ihr letzter MySQLi-Funktionaufruf INSERT- oder UPDATE-Anweisungen ausführt. Die Funktion hat die Wirkung: Sie gibt die ID zurück, die durch die letzte ausgeführte Abfrage automatisch generiert wurde.
mysqli_insert_id($con)
Nummer | Parameter und Beschreibung |
---|---|
1 | con (notwendig) Dies ist ein Objekt, das eine Verbindung zum MySQL-Server darstellt. |
Die Funktion mysqli_insert_id() gibt den Wert der Spalte mit AUTO_INCREMENT zurück, die vom letzten SQL-Befehl (normalerweise einem INSERT-Befehl) in der betreffenden Tabelle verarbeitet wurde. Wenn der letzte SQL-Befehl kein INSERT- oder UPDATE-Befehl ist oder die betreffende Tabelle keine Spalte mit AUTO_INCREMENT hat, wird der Rückgabewert 0 sein.
Diese Funktion wurde ursprünglich in der PHP-Version5eingeführt und kann in allen höheren Versionen verwendet werden.
Angenommen, wir haben in der Datenbank mydb eine Tabelle namens Cricketers erstellt, bei der das Feld ID als PRIMARY KEY und AUTO INCREMENTED definiert ist:
CREATE TABLE Cricketers( ID INT PRIMARY KEY AUTO_INCREMENT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Date_Of_Birth date, Place_Of_Birth VARCHAR(255), Country VARCHAR(255) );
Nachfolgender Beispiel zeigtmysqli_insert_id()Verwendung der Funktion (prozeduraler Stil)-
<?php //Verbindung herstellen $con = mysqli_connect("localhost", "root", "password", "mydb"); //Eintrag in die employee-Tabelle einfügen $sql = "insert into Cricketers values("1, 'Shikhar', 'Dhawan', DATE('1981-12-05), 'Delhi', 'India')"; mysqli_query($con, $sql); //Eingabeadresse $id = mysqli_insert_id($con); print("Insert ID: " . $id . "\n"); $sql = "insert into Cricketers values("2, 'Jonathan', 'Trott', DATE('1981-04-22), 'CapeTown', 'SouthAfrica')"; mysqli_query($con, $sql); $id = mysqli_insert_id($con); print("Insert ID: " . $id); //Verbindung schließen mysqli_close($con); ?>
Ausgabeergebnis
Insert ID: 1 Insert ID: 2
In der objektorientierten Syntax ist die Syntax dieser Funktion$ con-> insert_id();。Hier ist ein Beispiel für die objektorientierte Funktion $ minus von This;
<?php //Verbindung herstellen $con = new mysqli("localhost", "root", "password", "mydb"); //Eintrag in die employee-Tabelle einfügen $con -> query("insert into Cricketers values(3, 'Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka')"); //Insert ID $state = $con-> insert_id; print("Insert ID: ".$state."\n"); //Eintrag in die employee-Tabelle einfügen $con -> query("insert into Cricketers values(4, 'Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India')"); //Insert ID $state = $con-> insert_id; print("Insert ID: ".$state); //Verbindung schließen $con -> close(); ?>
Ausgabeergebnis
Insert ID: 3 Insert ID: 4
Hier ist die Funktionmysqli_insert_idEin weiteres Beispiel-
<?php //Verbindung herstellen $con = mysqli_connect("localhost", "root", "password", "mydb"); //Abfrage, um alle Zeilen des Cricketers-Tables auszuwählen mysqli_query($con, "SELECT * FROM Cricketers"); print("Insert ID (select query): ".mysqli_insert_id($con)."\n"); //Abfrage, um mehrere Zeilen in die Cricketers-Tabelle einzufügen mysqli_query($con, "INSERT INTO Cricketers VALUES (5, 'Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India'), (6, 'Ravindra', 'Jadeja', DATE('1988-12-06'), 'Nagpur', 'India') "); print("Insert ID: (multiple inserts) ".mysqli_insert_id($con)."\n"); //Abfrage, um die Zeilen des employee-Tables zu aktualisieren mysqli_query($con, "UPDATE Cricketers set COUNTRY = 'S.Africa' where ID = ") 2" print("Einfüge-ID (Aktualisierungsanfrage): " . mysqli_insert_id($con) . "\n"); //Die Abfrage fügt einen Eintrag in die Tabelle employee ein mysqli_query($con, "INSERT INTO employee VALUES ('Sarmista', 'Sharma', 28, 'F', 15000, 101); print("Einfüge-ID: (Tabelle ohne automatisch inkrementierte Schlüssel) " . mysqli_insert_id($con) . "\n"); //Verbindung schließen mysqli_close($con); ?>
Ausgabeergebnis
Einfüge-ID (Abfragevorgang): 0 Einfüge-ID: (mehrfache Einfügevorgänge) 6 Einfüge-ID (Aktualisierungsanfrage): 0 Einfüge-ID: (Tabelle ohne automatisch inkrementierte Schlüssel) 0
Die folgenden Beispiele demonstrate die Verwendung von SELECT, UPDATE, INSERT und DELETE-Anfragenmysqli_insert_idVerwendung des Funktionen-
<?php $connection_mysql = mysqli_connect("localhost", "root", "password", "mydb"); if (mysqli_connect_errno($connection_mysql)){ echo "MySql-Verbindung fehlgeschlagen: " . mysqli_connect_error(); } mysqli_query($connection_mysql, "INSERT INTO Employee (name) VALUES('PHP')"); echo "Neuer Eintrag hat die ID: " . mysqli_insert_id($connection_mysql); mysqli_close($connection_mysql); ?>
Ausgabeergebnis
Neuer Eintrag hat die ID: 0