mysql_*
pourtant obsolètes depuis bien longtemps.AUTO_INCREMENT
en PHP, vu que c'est apparemment bien plus amusant de réinventer la roue que d'utiliser une fonction proposée en standard par MySQL. Et le pire, c'est que c'était ce point justement qui empêchait son code de fonctionner correctement. PEBKAC.
AUTO_INCREMENT
sous MySQL, c'est pour récupérer l'identifiant qui vient d'être créé pour pouvoir le réutiliser (dans des tables intermédiaires par exemple)..mysql_insert_id
qui récupère le dernier identifiant inséré et la possibilité d'empaqueter tout ça dans une transaction pour éviter les problèmes liés à l'exécution de plusieurs insert en parallèle, mais ce n'est du coup pas forcément accessible à un novice.mysql_insert_id
. La dernière fois qu'il s'est planté, j'ai été bon pour faire un +1 sur près de 300 lignes...
mysql_insert_id
n'était pas accessible à un novice. J'ai dit que pour gérer le tout correctement, il fallait passer cette fonction dans une transaction, enchaînant ainsi insert
et mysql_insert_id
pour être sûr de récupérer le bon id. C'est l'utilisation des transactions qui n'est pas forcément accessible à un novice.SELECT LAST_INSERT_ID();
LAST_INSERT_ID()
a exactement les mêmes défauts que la fonction mysql_insert_id
...insert
et le last_insert_id
, et dans ce cas, il ne fonctionne plus. (Bon, dans ce cas, c'est un PEBKAC, on est d'accord, mais j'ai déjà vu des scripts qui recréaient la connexion à chaque requête.)mysql_insert_id
. Pifenmoins, j'essaie au maximum de m'en passer.
mysql_insert_id
serait donc lié à la session php et pas à la session MySQL, ce qui ferait une grosse différence de fonctionnement entre les deux méthodes.
Après là où on peut critiquer, c'est les gens qui viennent poser une question façon «fait mon devoir maison à ma place» et/ou avec aucun effort sur l'écriture/mise en forme. Mais ici c'est pas vraiment ce que tu décris, donc un bon CTLP pour moi.