Comment puis-je obtenir l’ID de la ligne dernière mise à jour de MySQL à l’aide de PHP ?
Réponses
Trop de publicités?Hm, je suis surpris que, parmi les réponses, je ne vois pas la solution la plus simple.
Supposons, item_id
est un entier de la colonne d'identité en items
tableau et de mettre à jour les lignes avec la déclaration suivante:
UPDATE items
SET qwe = 'qwe'
WHERE asd = 'asd';
Alors, pour connaître la dernière ligne droite après la déclaration, vous devez légèrement mise à jour la déclaration suivante:
UPDATE items
SET qwe = 'qwe',
item_id=LAST_INSERT_ID(item_id)
WHERE asd = 'asd';
SELECT LAST_INSERT_ID();
Si vous avez besoin de mettre à jour n'a vraiment changé de ligne, vous devez ajouter une condition de mise à jour de la item_id par le biais de la LAST_INSERT_ID de vérifier si les données vont changer dans la ligne.
C'est la même méthode que Salman Une réponse, mais voici le code que vous avez réellement besoin de le faire.
Tout d'abord, l'édition de votre tableau, de sorte qu'il conserve automatiquement la trace de chaque fois qu'une ligne est modifiée. Supprimer la dernière ligne si vous ne souhaitez savoir quand une ligne a été insérés.
ALTER TABLE mytable
ADD lastmodified TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
Ensuite, pour trouver la dernière mise à jour en ligne, vous pouvez utiliser ce code.
SELECT id FROM mytable ORDER BY lastmodified DESC LIMIT 1;
Ce code est tous levé de MySQL vs PostgreSQL: Ajout d'un 'Dernière modification' Colonne à une Table et Manuel MySQL: le Tri des Lignes. J'ai juste assemblé.
mysql insert id la fonction retourne l'IDENTIFIANT généré pour une colonne de type AUTO_INCREMENT par la précédente requête d'INSERTION. Cependant, il n'existe pas de fonction correspondante pour obtenir la "dernière mise à jour en ligne" en php.
Une possibilité est d'utiliser le mysql TIMESTAMP colonne "mise à JOUR CURRENT_TIMESTAMP" ensemble. La colonne est modifiée à l'heure actuelle par mysql sur toute modification pour chaque enregistrement, de sorte que vous pouvez trier par cette colonne pour obtenir le récemment enregistrement modifié. Vous devez lire la documentation soigneusement.