Obtenir du contenu après l'insertion MySQL
L'insertion de lignes dans une table MySQL est simple. Cependant, récupérer les valeurs insérées dans la même requête peut s’avérer difficile. Cette question explore la possibilité d'accomplir les deux tâches en une seule requête.
La question pose un scénario dans lequel une ligne de la table 'item_bug' doit être insérée dans la table 'items', et les données insérées, y compris l'ID, doit être récupéré. La solution proposée consiste à insérer la ligne à l'aide d'une instruction INSERT, puis à la récupérer à l'aide d'une instruction SELECT ultérieure.
Cependant, la question cherche une solution plus efficace en effectuant les deux tâches dans une seule requête. Pour y parvenir, la réponse suggère d'utiliser la fonction 'LAST_INSERT_ID()'. Cette fonction renvoie l'ID de la dernière ligne insérée dans le tableau. En combinant les instructions insert et select, il devient possible de récupérer les données insérées sans avoir besoin d'une requête distincte.
La requête suggérée ressemblerait à ceci :
INSERT INTO `items` (`item`, `number`, `state`) (SELECT '3', `number`, `state` FROM `item_bug` WHERE `id`='3'); SELECT * FROM `items` WHERE `id`= LAST_INSERT_ID();
En exécutant cette requête, la ligne de « item_bug » est insérée dans « items » et les données insérées, y compris l'ID, sont immédiatement récupérées et renvoyées comme résultat de la requête. Cette solution élimine le besoin d'une requête distincte pour récupérer les données insérées, ce qui en fait une approche plus efficace et élégante.
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!