Maison > développement back-end > tutoriel php > Comment récupérer le dernier ID inséré pour les relations de clés étrangères dans MySQL ?

Comment récupérer le dernier ID inséré pour les relations de clés étrangères dans MySQL ?

Susan Sarandon
Libérer: 2024-12-07 06:40:12
original
912 Les gens l'ont consulté

How Do I Retrieve the Last Inserted ID for Foreign Key Relationships in MySQL?

Récupération du dernier ID d'insertion pour les relations de clé étrangère

Dans les bases de données relationnelles, il est courant d'établir des relations de clé étrangère entre les tables. Lors de l'insertion d'une nouvelle ligne dans une table enfant, vous devrez peut-être l'associer à une ligne d'une table parent. Pour y parvenir, vous devrez généralement récupérer le dernier ID inséré dans la table parent et l'utiliser comme clé étrangère dans la table enfant.

Défi :

Vous souhaitez associer une image (de la table2) à un utilisateur (dans la table1) en utilisant son prénom, son nom et son nom d'utilisateur. Cependant, lorsque vous essayez de récupérer le dernier ID inséré dans la table2 et de le lier en tant que clé étrangère dans la table1, cela ne fonctionne pas.

Solution :

Pour Récupérez avec succès le dernier ID inséré et utilisez-le pour remplir une clé étrangère, vous devez suivre ces étapes :

  1. Assurez-vous que le champ ID dans la table2 est un champ d'incrémentation automatique. Cela générera automatiquement un identifiant unique pour chaque ligne insérée.
  2. Utilisez la fonction mysqli_insert_id() après avoir inséré une nouvelle ligne dans la table2. Cette fonction renvoie le dernier ID d'auto-incrémentation généré par la base de données.

Voici une version mise à jour de votre code qui intègre la fonction mysqli_insert_id() :

$image = mysqli_insert_id($mysqli); // Retrieve the last inserted ID from table2
$stmt = $mysqli->prepare("
  insert into table1 (username, firstname, lastname, image) 
  select ?,?,?,image from table2 t2 where username = ? and  t2.id = ? 
   ");
$stmt->bind_param('sssss', $username, $fname, $lname, $username, $image);
$stmt->execute();
Copier après la connexion

En créant ces modifications, vous pouvez maintenant récupérer le dernier ID inséré dans la table2 et l'utiliser comme clé étrangère pour lier la nouvelle ligne de la table1.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal