Maison > base de données > tutoriel mysql > Pourquoi LAST_INSERT_ID() de MySQL renvoie-t-il 0 et comment puis-je y remédier ?

Pourquoi LAST_INSERT_ID() de MySQL renvoie-t-il 0 et comment puis-je y remédier ?

DDD
Libérer: 2024-12-22 11:25:10
original
836 Les gens l'ont consulté

Why Does MySQL's LAST_INSERT_ID() Return 0, and How Can I Fix It?

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal