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 ?

Pourquoi ma requête MySQL INSERT échoue-t-elle avec « Valeur de date incorrecte : '0000-00-00' » après une mise à niveau MySQLnd ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-22 06:43:14544parcourir

Why Does My MySQL INSERT Query Fail with

Erreur MySQL : "Valeur de date incorrecte : '0000-00-00'" dans la requête INSERT

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!

Déclaration:
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