CREATE TABLE `produits` (
`idLivre` varchar(10) NOT NULL default '0',
`chapeau` varchar(255) NOT NULL default '',
`auteur` varchar(255) NOT NULL default '',
`titreSousTitre` varchar(255) NOT NULL default '',
`editeurLieuAnnee` varchar(255) NOT NULL default '',
`debutEdition` varchar(4) NOT NULL default '0000',
`finEdition` varchar(4) NOT NULL default '0000',
`formatCollation` text NOT NULL,
`description` text NOT NULL,
`prix` decimal(5,2) NOT NULL default '0.00',
`noticeBib` text NOT NULL,
`themes` varchar(255) NOT NULL default '',
`motsClef` varchar(255) NOT NULL default '',
`nomCat` varchar(255) NOT NULL default '',
`dateAjout` date NOT NULL default '0000-00-00',
`modeAjout` varchar(10) NOT NULL default '',
`imageUrl` varchar(100) NOT NULL default '0',
`setImage` tinyint(1) NOT NULL default '0',
`trash` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`idLivre`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Je comprends pas ce que tu veux dire...le type de données c'est bien decimal (5,2) pour le prix? je peut garantir que tout est identique en ligne et en local, car ma version locale est un dump de la base qui était en ligne...c'est à en devenir fou, c'est la première fois que je vois ça!Aucune idée, mais en tous cas il est logique que cela se passe sur le serveur de production.
A la limite poste ton shéma de table de ta base locale pour voir si le type de donnée est correct…
prix decimal(5,2) Non 0.00
Y aurait pas un truc avec le champ decimal qui se comporte de manière différente selon les versions?
When asked to store a value in a numeric column that is outside the data type's allowable range, MySQL's behavior depends on the SQL mode in effect at the time. For example, if no restrictive modes are enabled, MySQL clips the value to the appropriate endpoint of the range and stores the resulting value instead. However, if the mode is set to TRADITIONAL, MySQL rejects a value that is out of range with an error, and the insert fails, in accordance with the SQL standard.
Heu, j'suis pas un as en anglais loin s'en faut, mais l'explication ne se trouverait-elle pas dans la citation du manuel php faite par Hubert ?Hubert, le problème c'est aussi qu'il est bizarre que cela se comporte très bien en local, car si, je suis d'accord avec toi, le comportement en production est totalement logique, le comportement en local est lui, plutôt bizarre, surtout que dans la doc, ils ne parlent à aucun moment de différences entre des versions 4 et des versions 5.
Considérez le comportement de l'ancienne version de MySQL comme un bug qui a été corrigé.L'extension non standard MySQL de la limite supérieur de stockage des colonnes DECIMAL n'est plus supportée.