Maison > base de données > tutoriel mysql > Comment utiliser correctement `mysqli_insert_id()` avec les relations de clés étrangères ?

Comment utiliser correctement `mysqli_insert_id()` avec les relations de clés étrangères ?

Linda Hamilton
Libérer: 2024-12-30 17:15:09
original
409 Les gens l'ont consulté

How to Correctly Use `mysqli_insert_id()` with Foreign Key Relationships?

mysqli_insert_id avec relation de clé étrangère

Lorsque vous travaillez avec plusieurs tables impliquant des relations de clé étrangère, il est important d'associer correctement les données entre elles. Cet article aborde un problème de récupération du dernier identifiant inséré dans une table (table2) et de son utilisation pour insérer une ligne dans une autre table (table1).

Problème :

Le code tente de lier le dernier ID inséré de la table2 à une colonne d'image de la table1 en utilisant $image = $mysqli->insert_id. Cependant, cette approche échoue, empêchant la bonne association entre les tables.

Solution :

Pour résoudre ce problème, la première étape consiste à s'assurer que la colonne ID de la table2 est défini comme un champ à incrémentation automatique. Ensuite, utilisez mysqli_insert_id() pour récupérer le dernier ID inséré dans la table2. Voici le code modifié :

$last_id = mysqli_insert_id($mysqli); // Get 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, $last_id);
$stmt->execute();
Copier après la connexion

La fonction mysqli_insert_id() capture le dernier ID inséré de la table2 et le lie à la colonne image de la table1 à l'aide de $last_id. Cela garantit que l'image est correctement associée au prénom, au nom et au nom d'utilisateur dans la table1, préservant ainsi la relation de clé étrangère entre les deux tables.

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