Dans la FAQ il propose de modifier la configuration de mysql :
- Code: Tout sélectionner
par défaut
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
par
sql-mode=""
Si j'ai bien lu la documentation de mysql, le sql-mode [url]=http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html#sqlmode_strict_trans_tablesSTRICT_TRANS_TABLES[/url] bloque l'insertion ou la modification des données si elles ne respectent pas les règles. Dans notre cas, le champ
Drapeau est obligatoire (not null) et ne propose pas de valeur par défaut dans le description de la table, de fait si on ne le renseigne pas dans la requête d'insertion mysql refuse de l'insérer.
Donc supprimer ce sql-mode n'est (à mon avis) pas la bonne solution.
Il faut soit, comme vous l'avez fait, initialiser la valeur pour la requête, soit avoir une valeur par défaut dans la description de la table, soit mettre le champ à not null s'il n'a pas forcément besoin d'une valeur.
Dans mon cas, cette erreur est survenue à cause d'une bug de mon application renseignant l'établissement des étudiants à -1. Une fois corrigée, l'erreur n'est plus revenue.