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 :
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();
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!