Récupération et utilisation de l'ID de la dernière ligne pour l'insertion d'un tableau croisé en PHP
Lors de l'exécution de plusieurs insertions dans différentes tables, il devient nécessaire de récupérer le dernier ID inséré dans une table à utiliser comme référence dans les insertions suivantes. En PHP, en utilisant l'extension mysqli, cette tâche nécessite un peu de compréhension.
Dans le code fourni, vous avez tenté de lier directement le résultat de $mysqli->insert_id au champ image dans votre instruction d'insertion table1. . Cependant, cette approche est incorrecte car le dernier ID inséré doit être obtenu à partir de l'instruction d'insertion précédente.
Pour récupérer et utiliser correctement le dernier ID inséré, vous devez d'abord vous assurer que votre table dispose d'un champ à incrémentation automatique, généralement nommé id. Ce champ garde une trace de la prochaine valeur entière disponible à utiliser comme clé primaire pour les nouveaux enregistrements.
Une fois que vous disposez d'un champ à incrémentation automatique, vous pouvez utiliser la fonction mysqli_insert_id($conn) pour récupérer l'ID de la dernière ligne insérée. Voici un exemple :
$username = 'user1'; $fname = 'John'; $lname = 'Doe'; // Insert into table2 $insert = "INSERT INTO table2 (username) VALUES (?)"; if ($stmt = $mysqli->prepare($insert)) { $stmt->bind_param('s', $username); $stmt->execute(); } // Retrieve last inserted ID for image $last_id = mysqli_insert_id($conn); // Insert into table1 $insert = "INSERT INTO table1 (username, firstname, lastname, image) VALUES (?, ?, ?, $last_id)"; if ($stmt = $mysqli->prepare($insert)) { $stmt->bind_param('sss', $username, $fname, $lname); $stmt->execute(); }
Dans ce code corrigé, nous insérons d'abord un enregistrement dans la table2, puis nous récupérons le dernier ID inséré en utilisant mysqli_insert_id($conn). Cet identifiant est ensuite utilisé comme champ d'image dans l'instruction d'insertion suivante dans 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!