erreur PHP/SQL : "Column 'x' cannot be null ) 1"

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : erreur PHP/SQL : "Column 'x' cannot be null ) 1"

Re: erreur PHP/SQL : "Column 'x' cannot be null ) 1"

par trek » 21 févr. 2013, 16:34

Ca y est, je viens de trouver mon erreur, si ça marchait en local et pas en ligne, c'est parce que dans mon script PHP, il y a une partie où le programme envoie un mail et si l'envoi est ok, alors on "unset" les variables avant d'enregistrer ces dernières dans la base de données.
Quand j'étais hors ligne, le mail ne partait pas, j'avais donc une erreur et du coup les variables n'étaient pas effacées, le script continué et les variables pouvaient alimentaient ma base de données. C'est donc une erreur de bloc dans mon script. Ouf ...

Merci "olvlvl".

ps : je ne savais pas qu'en testant la valeur de retour de la fonction Mail() ça relancerait la fonction (du coup on reçoit le mail 2 fois).

Re: erreur PHP/SQL : "Column 'x' cannot be null ) 1"

par olvlvl » 21 févr. 2013, 14:29

Vérifie la valeur que tu utilises pour mettre à jour ta colonne "civil". Si une valeur "vide" est possible mais que la colonne ne peut pas être nulle, tu peux caster la valeur en chaine "(string) $civil" ou en entier "(int) $civil" avant de l'enregistrer.

erreur PHP/SQL : "Column 'x' cannot be null ) 1"

par trek » 21 févr. 2013, 12:42

Bonjour,

Je me permets de vous demander de l'aide car après avoir testé mon formulaire et la base de données qui est reliée, tout marchait comme sur des roulettes : Je saisissais mon formulaire, j'appuyais sur Envoyer et ma base était alimentée. Enfin ça c'était quand je faisais des tests en local sur mon pc avec Wamp Server. Bref, la vie de rêve.

Sauf qu'après avoir faire une sauvegarde de ma base et l'avoir importée dans le MyPhpAdmin de mon hébergeur internet et après avoir modifié les serveur, mot de passe, login et nom de la base de données, et bien j'ai une magnifique erreur que voici :

"Array ( [0] => 23000 [1] => 1048 [2] => Column 'civil' cannot be null ) 1"

Les champs de ma table ne peuvent pas être nul, donc je comprends à moitié ce message. Sauf que chez moi, le champs "civil" est rempli via une liste déroulante dans mon formulaire. J'ai même essayé de mettre "selected" dans la balise <option> de mon <select> pour voir si ça ne venait pas de là.

Bref, je ne comprends pas pourquoi ça marchait en local et ça ne marche plus en ligne.
Est-ce que ça viendrait de la version de MySQL de mon hébergeur ? de sa version de PHP ? ou alors de tout autre chose ?

Merci.