Problème avec un changement de version Mysql de 5.5 à 5.7

Nouveau WRInaute
Bonjour,

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, 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 ? :?

Merci beaucoup.

PS : Là je test sur WAMP, donc s'il y a un moyen de modifier ça dans WAMP, merci.
 
WRInaute passionné
Tu parles des INSERT ?
As-tu essayé de modifier des tables pour que ces champs en question aient une valeur par défaut (0 pour les INT, 0000-00-00 pour les dates). Il faut faire la manip pour chaque champ dans phpMyAdmin (par exemple), mais alors ça mettra la valeur indiquée lors d'un INSERT quand on n'a pas spécifié le champ.
 
Nouveau WRInaute
Merci pour ton aide Rick38, j'ai finalement trouvé la solution. Dans le fichier My.ini il fallait mettre le sql-mode="" au lieu du mode strict par défaut qui bloque les date en 000-00-00 et autre champs.
 
Discussions similaires
Haut