J'ai une ligne dans ma base de données "int" (celle ci ne doit recevoir que des chiffres). J'ai mis la valeur par défaut à "aucune" et pourtant, cela m'affiche "0" par défaut.
Ce que je voulais te faire remarquer, c'est tu définis une colonne comme "hébergeant" des nombres entier, mais qu'apparemment tu voudrais qu'elle prenne comme valeur une chaîne de caractères vide, c'est contradictoire.
Je suppose que la colonne en question est aussi définie NOT NULL ... non ?
De ce fait, à l'insertion, lorsque aucune valeur n'est précisée pour cette colonne, MySQL met une valeur INT par défaut, à savoir 0 ...
Effectivement, NULL = NON mais je n'ai pas accès à la modification du paramètre.
philodick a écrit:
Ce que je voulais te faire remarquer, c'est tu définis une colonne comme "hébergeant" des nombres entier, mais qu'apparemment tu voudrais qu'elle prenne comme valeur une chaîne de caractères vide, c'est contradictoire.
Ca veut dire que pour INT, il ne peut pas rien y avoir ?
Ca veut dire que pour INT, il ne peut pas rien y avoir ?
Une chaîne de caractères vide et NULL sont deux choses différentes. Toute colonne, quel que soit son type peut être NULL ce qui signifie "absence de valeur". Une colonne de type entier (INT) peut être NULL. Mais lui donner comme valeur une chaîne de caractères vide ou la chaîne "aucune" sera converti en 0 par MySQL lors de l'insertion.
davidkings a écrit:
Effectivement, NULL = NON
Ta table n'accepte donc pas que cette colonne n'ait pas de valeur, il faut corriger cela si c'est ce dont tu as besoin ...
davidkings a écrit:
je n'ai pas accès à la modification du paramètre
Pourquoi ? Tu n'es pas administrateur de la base ?
Au pire tu peux faire cela en SQL :
ALTER TABLE ma_table
ALTER COLUMN ma_column INT NULL;
N'oubliez pas d'activer les erreurs PDO.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
N'oubliez pas d'activer les erreurs PDO.