J'aurai besoin de votre aide, je suis un peu désespérée. Je bosse sur un intranet depuis longtemps. Je suis obligée de faire avec nouvelle version de mysql la 5.7 sur Wamp, avant j’étais en 5.5. Dans la 5.5 je ne m’occupais pas de savoir si un champ était en NULL ou en NOT NULL (tous mes champs étaient en NOT NULL), ce qui était pratique car un champ en INT si lors d’un INSERT aucune valeur n’était rentrée, pour lui alors le champ ce m’était à 0 automatiquement, pareille avec les dates 000-00-00.
Alors oui effectivement c’était peut être pas judicieux mais bon c’est la bêtise que j’ai faite.
Apparemment avec la version de Mysql 5.6 ou 5.7 il y a des paramètres plus stricts au niveau des types des attributs. En conséquence je ne peux plus faire de requête avec une valeur en ‘ ‘ (vide) qui se transforme en 0 dans la base de données quand c’est un INT ou en 000-00-00 quand c’est une date. Sauf que tout mon code est basé sur cette ancienne manière de fonctionner. Cette erreur impact tout mon code et j'ai vraiment beaucoup de pages et de lignes de code.
Y a-t-il un moyen de désactiver ce mode strict afin de ne pas avoir à revenir sur toutes mes requêtes et mon code dans WAMP ?
Il ne faut pas prendre le "NOT NULL" à la légère, ni le "DEFAULT" non plus. D'ailleurs pourquoi ce NULL existe-t-il ? Tout simplement pour faire la distinction entre une valeur renseignée et l'absence de valeur.
Si vous mettez zéro dans une colonne numérique, que signifie-t-il ? Est-ce une valeur d'initialisation qui attend par la suite une valeur final ? Ou est-ce la valeur définitive ?
Dans ce cas là, le mieux est de mettre NULL pour faire ce tte distinction !
Même remarque sur la date, d'autant qu'une date à "0000-00-00" n'a aucun sens. Encore qu'une chaîne de caractères à vide peut jouer le rôle du NULL.
Pour résoudre votre problème, vous devez modifier la variable "sql-mode". --> [dev.mysql.com]
Pour faire rapide, si vous désirez avoir le même paramétrage que dans les anciennes versions de MySql, ne renseignez pas "sql-mode".
@+
---------------------------------------------------------------------------------------------------------------------------------------------------------------- Mon site : [www.jcz.fr]
Je sais que ça n'était pas judicieux mais bon il y a trop à reprendre. Merci changer le sql-mode a réglé le problème. Les vieille habitude vont être dure à changer.