Erreur ! SQLSTATE[HY000]: General error:

Résolu

Bonjour, En voulant faire un INSERT pour un nouvel adhérent je reçois ce message.

Erreur ! SQLSTATE[HY000]: General error: 1364 Field 'mail' doesn't have a default value

Je ne comprends pas pourquoi, je vois simplement qu'il s'agit de l'adresse mail qui n'a pas de valeur par défaut. Que faut-il faire ? je vous envoie ma table SQL concernée. Je vous remercie.

mysql> show full columns from cdc_personnes;
+---------+-------------+--------------------+------+-----+---------+----------------+---------------------------------+-----------------------------------------+
| Field   | Type        | Collation          | Null | Key | Default | Extra          | Privileges                      | Comment                                 |
+---------+-------------+--------------------+------+-----+---------+----------------+---------------------------------+-----------------------------------------+
| idpers  | int         | NULL               | NO   | PRI | NULL    | auto_increment | select,insert,update,references | ID de la personne                       |
| nom     | varchar(45) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Nom de la personne                      |
| prenom  | varchar(45) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Prénom de la personne                   |
| email   | varchar(45) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | e-mail de la personne                   |
| dnaiss  | date        | NULL               | NO   |     | NULL    |                | select,insert,update,references | Date de naissance de la personne        |
| telf    | varchar(20) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Téléphone fixe de la personne           |
| telm    | varchar(20) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Téléphone mobile de la personne         |
| adr1    | varchar(45) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Adresse de la personne                  |
| adr2    | varchar(45) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Complément d'adresse de la personne     |
| lieudit | varchar(45) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Eventuel lieu-dit                       |
| cpostal | varchar(5)  | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Code postal de résidence de la personne |
| ville   | varchar(45) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Ville de résidence de la personne       |
| pseudo  | varchar(45) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Pseudo de l'adhérent                    |
| passwd  | varchar(45) | utf8mb4_general_ci | NO   |     | NULL    |                | select,insert,update,references | Mot de passe de l'adhérent              |
| mail    | int         | NULL               | NO   |     | NULL    |                | select,insert,update,references | Mets à 1 lors de l'envoi de mail        |
+---------+-------------+--------------------+------+-----+---------+----------------+---------------------------------+-----------------------------------------+
15 rows in set (0.01 sec)

3 réponses

  1. Modérateur

    Bonjour,

    Ben....  soit tu définis une valeur par défaut sur ce champ dans ta table

    Soit tu envoies une valeur pour ce champ lors de ta requête INSERT ( même si tu ne mets qu'une string vide )


    0
    1. Modérateur

      Dailleurs..ton champ mail est de type 'int' ?

      Donc c'est un nombre que tu veux y stocker ?,

      1
    2. Contributeur

      Ou accepter que le champ contienne une valeur NULL.

      0
  2. Bonjour merci de vos réponses. Mon champ email est de type varchar. J'ai modifié ma requète INSERT pour qu'elle accepte une string vide mais voici l'erreur retournée.

    En fait cela concerne l'adresse mail des membres email.

    Integrity constraint violation: 1048 Le champ 'email' ne peut être vide (null)

    0
    1. Modérateur

      Tout à l'heure ça concernait le champ mail 

      Maintenant ça concerne le champ email 

      Donc c'est un Nouveau message d'erreur ..  mais la réponse sera la même...

      0
  3. Merci beaucoup pour votre aide.

    Cordialement.

    0