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

Tutoriel PHP de base

Tutoriel PHP avancé

PHP et MySQL

Manuel de référence PHP

Utilisation et exemples de la fonction mysqli_insert_id() en PHP

PHP MySQLi Référence Manuel

La fonction mysqli_insert_id() retourne l'ID auto-incrementé généré par la dernière instruction INSERT

Définition et utilisation

Si vous avez une table avec une propriété AUTO_INCREMENT et si votre dernière appel de fonction MySQLi exécute une instruction INSERT ou UPDATE. La fonction a pour effet de : retourner l'ID généré automatiquement lors de la dernière exécution de la requête.

Syntaxe

mysqli_insert_id($con)

Paramètre

NuméroParamètres et explications
1

con(obligatoire)

C'est un objet représentant la connexion au serveur MySQL.

Valeur de retour

La fonction mysqli_insert_id() retourne la valeur de la colonne AUTO_INCREMENT de la dernière requête SQL (généralement une requête INSERT) qui a été opérée. Si la dernière requête SQL n'est pas une requête INSERT ou UPDATE, ou si la table opérée n'a pas de colonne AUTO_INCREMENT, la valeur retournée est 0.

Version PHP

Cette fonction a été introduite dans la version PHP5introduit et peut être utilisé dans toutes les versions supérieures.

Supposons que nous ayons créé une table nommée Cricketers dans la base de données mydb, où le champ ID est PRIMARY KEY et AUTO INCREMENTED :

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

Exemples en ligne

Voici un exemple qui montremysqli_insert_id()Utilisation de la fonction (style procédural)-

<?php
   //Établir une connexion
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //Insérer un enregistrement dans la table employee
   $sql = "insert into Cricketers values(1, 'Shikhar', 'Dhawan', DATE('1981-12-05), 'Delhi', 'India')";
   mysqli_query($con, $sql);
   //ID d'insertion
   $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);
   //Fermer la connexion
   mysqli_close($con);
?>

Résultat de la sortie

Insert ID: 1
Insert ID: 2

Exemples en ligne

Dans le style orienté objet, la syntaxe de cette fonction est$ con-> insert_id();。Voici un exemple de la fonction This du style orienté objet $ minus;

<?php
   //Établir une connexion
   $con = new mysqli("localhost", "root", "password", "mydb");
   //Insérer un enregistrement dans la table employee
   $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");
   //Insérer un enregistrement dans la table employee
   $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);
   //Fermer la connexion
   $con -> close();
?>

Résultat de la sortie

Insert ID: 3
Insert ID: 4

Exemples en ligne

Voici la fonctionmysqli_insert_idUn autre exemple-

<?php
   //Établir une connexion
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //Requête pour sélectionner toutes les lignes de la table Cricketers
   mysqli_query($con, "SELECT * FROM Cricketers");
   print("Insert ID (requête sélectionnée): ".mysqli_insert_id($con)."\n");
   //Requête utilisée pour insérer plusieurs lignes dans la table Cricketers
   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: (multiples inserts) ".mysqli_insert_id($con)."\n");
   //Requête pour mettre à jour les lignes de la table employee
   mysqli_query($con, "Mettre à jour la table Cricketers en fixant COUNTRY à 'S.Africa' où ID = "); 2"
   print("ID d'insertion (requête de mise à jour): " . mysqli_insert_id($con) . "\n");
   //La requête insère un enregistrement dans la table employee
   mysqli_query($con, "INSERT INTO employee VALUES ('Sarmista', 'Sharma', 28, 'F', 15000,  101);
   print("ID d'insertion: (tableau sans clé auto-incrementée) " . mysqli_insert_id($con) . "\n");
   //Fermer la connexion
   mysqli_close($con);
?>

Résultat de la sortie

ID d'insertion (requête de sélection): 0
ID d'insertion: (insertions multiples) 6
ID d'insertion (requête de mise à jour): 0
ID d'insertion: (tableau sans clé auto-incrementée) 0

Exemples en ligne

Les exemples suivants montrent les requêtes SELECT, UPDATE, INSERT et DELETEmysqli_insert_idUtilisation de la fonction-

<?php
   $connection_mysql = mysqli_connect("localhost", "root", "password", "mydb");
   
   if (mysqli_connect_errno($connection_mysql)){
      echo "Échec de la connexion MySql: " . mysqli_connect_error();
   }
   
   mysqli_query($connection_mysql,"INSERT INTO Employee (name) VALUES('PHP')");
   echo "Nouvel enregistrement a l'id: " . mysqli_insert_id($connection_mysql); 
   
   mysqli_close($connection_mysql);
?>

Résultat de la sortie

Nouvel enregistrement a l'id: 0

PHP MySQLi Référence Manuel