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

Tutoriel PHP de base

Tutoriel PHP avancé

PHP & MySQL

Manuel de référence PHP

Dernier ID inséré MySQL PHP

Dans ce tutoriel, vous apprendrez à utiliser PHP pour récupérer l'ID unique de la dernière ligne insérée dans une table de base de données MySQL.

Comment obtenir l'ID de la dernière ligne insérée

Dans " PHP MySQL insertionDans ce chapitre, vous avez appris que AUTO_INCREMENT génère automatiquement un ID unique à chaque insertion d'un nouveau enregistrement ou ligne dans la table. Cependant, dans certains cas, vous avez besoin de cet ID généré automatiquement pour l'insérer dans une deuxième table. Dans ces cas, vous pouvez utiliser la fonction PHP mysqli_insert_id() pour récupérer l'ID généré récemment, comme dans l'exemple suivant.

Dans cet exemple, nous utiliserons ce qui a été vu dansPHP MySQL création de table在同一章中创建的personneltableau, qui possède quatre colonnesid,first_name,last_nameetemailidest une colonne primaire marquée avec l'attribut AUTO_INCREMENT.

Exemple : méthode procédurale

<?php
/* Tenter de se connecter au serveur MySQL. Supposons que vous exécutez MySQL.
Serveur avec paramètres par défaut (utilisateur sans mot de passe 'root')*/
$link = mysqli_connect("localhost", "root", "", "demo");
 
//Vérifier la connexion
if($link === false){
    die("Erreur : Impossible de se connecter. " . mysqli_connect_error());
}
 
//Tenter d'exécuter la requête d'insertion
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')";
if(mysqli_query($link, "")){
    //Obtenir l'ID inséré dernier
    $last_id = mysqli_insert_id($link);
    echo "Enregistrement inséré avec succès. L'ID inséré dernier est : ". $last_id;
} else{
    echo "Erreur : Impossible d'exécuter $sql. ". mysqli_error($link);
}
 
//Fermer la connexion
mysqli_close($link);
?>

Exemple : méthode orientée objet

<?php
/* Tenter de se connecter au serveur MySQL. Supposons que vous exécutez MySQL.
Serveur avec paramètres par défaut (utilisateur sans mot de passe 'root')*/
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//Vérifier la connexion
if($mysqli === false){
    die("Erreur : Impossible de se connecter. ". $mysqli->connect_error);
}
 
// Tenter d'exécuter la requête d'insertion
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')";
if($mysqli->query($sql) === true){
    //Obtenir l'ID inséré dernier
    $last_id = $mysqli->insert_id;
    echo "Enregistrement inséré avec succès. L'ID inséré dernier est : ". $last_id;
} else{
    echo "Erreur : Impossible d'exécuter $sql. ". $mysqli->error;
}
 
//Fermer la connexion
$mysqli->close();
?>

Exemple : méthode PDO

<?php
/* Tenter de se connecter au serveur MySQL. Supposons que vous exécutez MySQL.
Serveur avec paramètres par défaut (utilisateur sans mot de passe 'root')*/
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //Définir le mode d'erreur PDO sur les exceptions
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("Erreur : Impossible de se connecter. ". $e->getMessage());
}
 
//Tenter d'exécuter la requête d'insertion
try{
    $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')";    
    $pdo->exec($sql);
    $last_id = $pdo->lastInsertId();
    echo "Enregistrement inséré avec succès. L'ID inséré dernier est : ". $last_id;
} catch(PDOException $e){
    die("Erreur : Impossible d'exécuter $sql. ". $e->getMessage());
}
 
//Fermer la connexion
unset($pdo);
?>