Bonjour,
J'ai une classe qui me permet de gérer ma connexion à la base de données. J'utilise des bind variable pour renseigner les variables de mes requêtes.
Je ne pense pas utile de vous indiquer le code de ma classe, car je ne pense pas que le problème vienne de là, vu les symptômes.
Sur une table, j'ai une colonne définie comme "NOT NULL". Via un outil quelconque, si j'essaye d'insérer ou modifier un enregistrement, sans que cette colonne soit renseignée, j'ai une erreur : normal.
Maintenant, j'autorise la valeur NULL pour cette colonne. Via ma classe, j'insère un enregistrement avec une variable qui n'est pas renseignée ( $colValue = NULL; ). Si je contrôle ensuite l'enregistrement, la colonne est bien à NULL (et ce n'est pas une chaine vide, c'est bien NULL).
Donc, ma classe sait parfaitement gérer une variable à NULL.
Si maintenant je remets la colonne à NOT NULL et que je fais une nouvelle insertion, identique à la précédente, je n'ai aucune erreur... et le pire, c'est que lorsque je consulte la table, la colonne contient la chaine vide !!
Mon code étant identique, n'ayant modifié que la structure de la table, je me demande s'il n'y aurait pas une option dans la configuration de PHP ou de MySql qui justifierait ce comportement. Je n'arrive pas à trouver car si je cherche des informations sur NULL, PHP et MySqli, je tombe sur d'autres problèmes.
Modifié par marcmendez (05 Aug 2009 - 14:39)
J'ai une classe qui me permet de gérer ma connexion à la base de données. J'utilise des bind variable pour renseigner les variables de mes requêtes.
Je ne pense pas utile de vous indiquer le code de ma classe, car je ne pense pas que le problème vienne de là, vu les symptômes.
Sur une table, j'ai une colonne définie comme "NOT NULL". Via un outil quelconque, si j'essaye d'insérer ou modifier un enregistrement, sans que cette colonne soit renseignée, j'ai une erreur : normal.
Maintenant, j'autorise la valeur NULL pour cette colonne. Via ma classe, j'insère un enregistrement avec une variable qui n'est pas renseignée ( $colValue = NULL; ). Si je contrôle ensuite l'enregistrement, la colonne est bien à NULL (et ce n'est pas une chaine vide, c'est bien NULL).
Donc, ma classe sait parfaitement gérer une variable à NULL.
Si maintenant je remets la colonne à NOT NULL et que je fais une nouvelle insertion, identique à la précédente, je n'ai aucune erreur... et le pire, c'est que lorsque je consulte la table, la colonne contient la chaine vide !!
Mon code étant identique, n'ayant modifié que la structure de la table, je me demande s'il n'y aurait pas une option dans la configuration de PHP ou de MySql qui justifierait ce comportement. Je n'arrive pas à trouver car si je cherche des informations sur NULL, PHP et MySqli, je tombe sur d'autres problèmes.
Modifié par marcmendez (05 Aug 2009 - 14:39)