Maison >base de données >tutoriel mysql >Pourquoi `LAST_INSERT_ID()` renvoie-t-il 0 dans MySQL ?
Présentation du problème :
Insertion de données dans une table MySQL à l'aide de méthodes courantes (comme insérer NULL, 0 ou des parenthèses vides) et ensuite demander le dernier ID inséré (LAST_INSERT_ID()) renvoie 0 de manière cohérente. Ce problème affecte à la fois mysql_insert_id et PDO::lastInsertId() de PHP.
Solution :
Le problème réside dans le fichier de configuration MySQL phpmyadmin. Lorsque PersistentConnections est défini sur FALSE, un nouveau CONNECTION_ID est établi pour chaque requête. Cela invalide le résultat LAST_INSERT_ID() car il est associé à la connexion précédente.
Pour résoudre le problème, définissez PersistentConnections sur TRUE dans le fichier de configuration phpmyadmin. Cela garantit que la même connexion est maintenue sur plusieurs requêtes, permettant à LAST_INSERT_ID() de renvoyer avec précision le dernier identifiant inséré.
Informations supplémentaires :
Pour plus d'informations sur le impact de PersistentConnections, reportez-vous à la rubrique « Chaque requête crée un nouveau CONNECTION_ID()".
Remerciements :
Merci tout particulièrement à dnagirl pour son aide précieuse dans l'identification 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!