MySQL : dépannage de LAST_INSERT_ID() renvoyant 0
Dans MySQL, la fonction LAST_INSERT_ID() renvoie l'ID généré pour la dernière ligne insérée dans une colonne AUTO_INCREMENT. Cependant, vous avez rencontré un problème où il renvoie systématiquement 0 malgré l'insertion de nouveaux enregistrements dans une table.
Après enquête, il semble que le problème provienne de votre configuration MySQL. Vous avez mentionné que les fonctions PHP mysql_insert_id et PDO::lastInsertId() ne donnent également aucun résultat. Cela suggère que le problème n'est pas spécifique à la fonction LAST_INSERT_ID() mais réside plutôt dans la connexion MySQL elle-même.
La solution à ce problème consiste à définir le paramètre PersistentConnections sur TRUE dans votre fichier de configuration MySQL. Cela garantit que votre script PHP conserve la même connexion à la base de données pendant toute la durée de son fonctionnement. Lorsque PersistentConnections est défini sur FALSE, une nouvelle connexion est créée pour chaque requête, ce qui entraîne la modification de CONNECTION_ID. Par conséquent, LAST_INSERT_ID() devient inefficace car il ne peut pas retracer la connexion avec la dernière opération d'insertion.
Définir PersistentConnections sur TRUE résout ce problème, permettant à votre script de réutiliser la même connexion et ainsi de renvoyer correctement l'ID AUTO_INCREMENT. du dernier enregistrement inséré. De plus, vous pouvez vous référer à la documentation sur Chaque requête crée un nouveau CONNECTION_ID() pour plus d'informations. Merci à dnagirl pour son aide dans la résolution de ce problème.
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!