English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Grundanleitung

PHP Fortgeschrittene Anleitung

PHP & MySQL

PHP Referenzhandbuch

Verwendung und Beispiel der Funktion PHP mysqli_insert_id()

PHP MySQLi Referenzhandbuch

Die Funktion mysqli_insert_id() gibt die selbstinkrementierende ID zurück, die durch die letzte INSERT-Anweisung erzeugt wurde

Definition und Verwendung

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.

Syntax

mysqli_insert_id($con)

Parameter

NummerParameter und Beschreibung
1

con (notwendig)

Dies ist ein Objekt, das eine Verbindung zum MySQL-Server darstellt.

Rückgabewert

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.

PHP-Version

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)
);

Online-Beispiel

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

Online-Beispiel

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

Online-Beispiel

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

Online-Beispiel

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

PHP MySQLi Referenzhandbuch