"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je récupérer efficacement l'ID généré automatiquement après un insert dans PHP / MySQL?

Comment puis-je récupérer efficacement l'ID généré automatiquement après un insert dans PHP / MySQL?

Publié le 2025-03-24
Parcourir:579

How Can I Efficiently Retrieve the Auto-Generated ID After an INSERT in PHP/MySQL?

Récupération de l'ID de la ligne insérée dans php / mysql

L'une des tâches communes lorsque vous travaillez avec des bases de données MySQL inserte une ligne et a été suivie de son identifiant auto-généré par l'auto. Ce processus implique deux requêtes distinctes, en introduisant potentiellement un écart de temps entre l'insertion de la ligne et récupérer l'ID, ce qui peut conduire à des conditions de course.

Heureusement, PHP fournit une solution simple à ce problème: la fonction MySQLI_INSERST_ID (). Le code suivant démontre son utilisation:

$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);

mysqli_insert_id () récupère directement l'ID généré par l'instruction d'insertion la plus récente, éliminant le besoin de requêtes supplémentaires. Cette approche garantit que l'ID récupéré correspond à la ligne qui vient d'être insérée.

Une méthode alternative consiste à utiliser la fonction Last_insert_id () de MySQL dans une seule requête. En combinant plusieurs instructions d'insertion, il devient possible de mettre à jour plusieurs tableaux simultanément et d'éviter les tracas de la récupération d'ID séparée:

mysqli_query($link, "INSERT INTO my_user_table ...; INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3