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); ?>
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())"); ?>
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!