Maison >base de données >tutoriel mysql >Pourquoi ma requête MySQL INSERT échoue-t-elle avec « Valeur de date incorrecte : '0000-00-00' » après une mise à niveau MySQLnd ?
Problème :
Les utilisateurs rencontrent une erreur lorsqu'ils tentent d'insérer des valeurs dans un tableau avec une colonne de date via phpMyAdmin, malgré le succès insertions via le site Web. Le message d'erreur : "Valeur de date incorrecte : '0000-00-00'" s'affiche.
Analyse :
La cause première de l'erreur est liée aux modifications en mode SQL de MySQL après une mise à niveau de MySQLnd 5.0.12 vers 5.7.11. Dans MySQL 5.7, le mode strict est activé par défaut, ce qui applique des règles de validation des données plus strictes. La valeur par défaut « 0000-00-00 » pour la colonne de date enfreint ces règles, ce qui entraîne l'erreur.
Solution :
Pour résoudre le problème et autoriser le insertion de '0000-00-00' comme valeur de date valide, le mode strict doit être désactivé. Cela peut être réalisé en exécutant la requête suivante :
SET GLOBAL sql_mode = '';
Informations supplémentaires :
L'activation du mode strict garantit l'intégrité des données en appliquant des règles spécifiques pour les types de données et les valeurs. Cependant, cela peut également provoquer des erreurs lors de la tentative d'insertion de données qui ne respectent pas strictement ces règles. En désactivant le mode strict, les utilisateurs peuvent contourner ces contrôles et autoriser l'insertion de données telles que « 0000-00-00 », qui peuvent être valides dans certains contextes.
Il est important de noter que si l'intégrité des données est cruciale pour votre application, vous devez évaluer soigneusement l’impact de la désactivation du mode strict. Envisagez de mettre en œuvre des mécanismes personnalisés de validation et de gestion des erreurs pour garantir que des données non valides ne sont pas stockées dans votre base de données.
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!