Maison > développement back-end > tutoriel php > Comment récupérer et utiliser le dernier ID inséré pour les insertions de tableaux croisés en PHP ?

Comment récupérer et utiliser le dernier ID inséré pour les insertions de tableaux croisés en PHP ?

Barbara Streisand
Libérer: 2024-12-02 06:56:10
original
502 Les gens l'ont consulté

How to Retrieve and Use the Last Inserted ID for Cross-Table Inserts in PHP?

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();
}
Copier après la connexion

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!

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