Maison > développement back-end > tutoriel php > Comment récupérer l'ID d'une ligne nouvellement insérée dans PHP/MySQL ?

Comment récupérer l'ID d'une ligne nouvellement insérée dans PHP/MySQL ?

Patricia Arquette
Libérer: 2024-12-04 20:05:19
original
807 Les gens l'ont consulté

How to Retrieve the ID of a Newly Inserted Row in PHP/MySQL?

Récupérer l'ID d'une ligne insérée en PHP/MySQL

Lors de l'insertion d'une ligne dans une table MySQL avec un champ id auto-incrémenté, il est essentiel de récupérer l'identifiant identifiant nouvellement généré pour les opérations ultérieures.

Éviter les conditions de concurrence

Une approche pour obtenir l'identifiant consiste à interroger la base de données pour la ligne qui correspond aux informations insérées. Cependant, cette méthode introduit une condition de concurrence critique dans laquelle une autre ligne pourrait être insérée avant l'exécution de la requête, ce qui entraînerait des résultats inexacts.

Utilisation de mysqli_insert_id()

Une solution fiable consiste à utiliser LAST_INSERT_ID( ) fonction. La méthode mysqli_insert_id() en PHP renvoie le dernier identifiant généré pour la connexion actuelle.

$link = mysqli_connect('127.0.0.1', 'my_user', 'my_pass', 'my_db');
mysqli_query($link, "INSERT INTO mytable (1, 2, 3, 'blah')");
$id = mysqli_insert_id($link);
Copier après la connexion

Plusieurs requêtes en une seule opération

Une approche alternative consiste à exécuter plusieurs requêtes en une seule opération, profitant de la méthode LAST_INSERT_ID() de MySQL. Cela garantit que l'identifiant est correctement attribué même lorsque plusieurs tables sont impliquées.

mysqli_query($link, "INSERT INTO my_user_table ...;
  INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");
Copier après la connexion

Cette méthode élimine le besoin de s'inquiéter des conditions de concurrence et fournit un moyen fiable de récupérer l'identifiant de la ligne insérée.

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