English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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_nameetemailoùidest une colonne primaire marquée avec l'attribut AUTO_INCREMENT.
<?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); ?>
<?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(); ?>
<?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); ?>