Maison > développement back-end > tutoriel php > Comment récupérer efficacement l'ID auto-incrémenté après une INSERT en PHP/MySQL ?

Comment récupérer efficacement l'ID auto-incrémenté après une INSERT en PHP/MySQL ?

DDD
Libérer: 2024-12-08 04:12:10
original
871 Les gens l'ont consulté

How to Efficiently Retrieve the Auto-Incremented ID After an INSERT in PHP/MySQL?

Insérer une ligne et récupérer l'identifiant en PHP/MySQL

L'insertion d'une ligne dans une table MySQL implique souvent la nécessité de récupérer l'identifiant nouvellement généré pour la ligne insérée. Généralement, cela implique une requête ultérieure pour récupérer la ligne qui correspond aux données insérées, mais cette méthode introduit la possibilité de lignes en double avec des valeurs « id » variables.

Une approche plus efficace consiste à tirer parti de l'auto-incrémentation de MySQL. fonctionnalité et la fonction PHP mysqli_insert_id(). Cette fonction vous permet de récupérer l'ID de la dernière ligne insérée dans la connexion actuelle :

<?php
$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

Cette approche élimine le risque de conditions de concurrence et fournit un moyen fiable d'obtenir l'« ID » de la ligne nouvellement insérée. row.

Une autre technique consiste à exécuter deux requêtes en une seule transaction, en tirant parti de LAST_INSERT_ID() de MySQL. méthode :

<?php
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 modifie les deux tables au sein d'une seule transaction, garantissant des données cohérentes dans les tables affectées.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal